package com.company;

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        String line = bufferedReader.readLine();
        String[] number = line.split(" ");

        int a = Integer.parseInt(number[0]), b = Integer.parseInt(number[1]), k = Integer.parseInt(number[2]), c = Integer.parseInt(number[3]);

        if (c != a && c != b) {
            System.out.println(0);
        } else if (a == b) {
            System.out.println(k);
        } else if (k == 0) {
            System.out.println(0);
        } else {
            BigInteger num = new BigInteger(Integer.toString(2)), modulo = new BigInteger(Integer.toString(1000000007));
            num = num.pow(k - 1).multiply((new BigInteger(Integer.toString(k))));

            System.out.println(num.mod(modulo).toString());
        }
    }
}

