import java.util.Scanner; public class Barrels { public static void main(String[] args) { var sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int k = sc.nextInt(); int c = sc.nextInt(); var triangle = new long[k + 1][k + 1]; triangle[0][0] = 1; for (int i = 1; i < k + 1; i++) { triangle[i][0] = 1; for (int j = 1; j < i; j++) { triangle[i][j] = triangle[i - 1][j] + triangle[i - 1][j - 1]; } triangle[i][i] = 1; } long res = 0; final long mod = 1000000007; if (c == a || c == b) { for (int i = 1; i < k + 1; i++) { res += i * triangle[k][i]; res %= mod; } } System.out.println(res); /* for (int i = 0; i < k + 1; i++) { for (int j = 0; j < k + 1; j++) { System.out.printf("%d ", triangle[i][j]); } System.out.println(); } */ } }