import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayList;

public class Barrels {
	public static Long myPow(long a, long b) {
		long base = a;
		for (long i = 1; i < b; i++) {
			a *= base;
		}

		return a;
	}
	
	public static BigInteger jebaPow(long base, long b) {
		BigInteger result = new BigInteger("" + base);
		BigInteger jebaBase = new BigInteger("" + base);
		
		for (long i = 1; i < b; i++) {
			result = result.multiply(jebaBase);
		}

		return result;
	}

	public static int count;

	public static Long a, b, c, k;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s;
		int line = 1;
		while ((s = br.readLine()) != null) {
			// System.out.println(s);
			String[] numbers = s.split(" ");

			a = Long.parseLong(numbers[0]);
			b = Long.parseLong(numbers[1]);
			k = Long.parseLong(numbers[2]);
			c = Long.parseLong(numbers[3]);

			if (!(a == c || b == c)) {
				System.out.println("0");
				return;
			}
			
			if(a == b) {
				System.out.println(k);
				return;
			}
		}
		
		BigInteger jebaResult = jebaPow(2, k)
				.multiply(new BigInteger("" + k))
				.divide(new BigInteger("2"))
				.mod((new BigInteger("" + 1000000007)));

		System.out.println(jebaResult.toString());
		

		/*
		 * ArrayList<Long> numbers = new ArrayList<>(); numbers.add(a); numbers.add(b);
		 * 
		 * Long newNumber;
		 * 
		 * 
		 * 
		 * int count = 0; for (Long i = new Long(0); i < k - 1; i++) { ArrayList<Long>
		 * oldNumbers = new ArrayList<>(numbers);
		 * 
		 * int oldSize = numbers.size(); for (int j = 0; j < oldSize; j++) { newNumber =
		 * numbers.get(j) + myPow(new Long(10), i + 1) * a; numbers.set(j, newNumber); }
		 * 
		 * for (int j = oldSize; j < oldSize * 2; j++) { newNumber = oldNumbers.get(j -
		 * oldSize) + myPow(new Long(10), i + 1) * b; numbers.add(newNumber); } }
		 * 
		 * 
		 * System.out.println((numbers.size() * k) / 2 % 1000000007);
		 */
	}
}

