import java.math.BigInteger;
import java.util.Scanner;

public class Barrels {

    public static void main(String[] args) {

            Scanner sc = new Scanner(System.in, "UTF-8");

            int a,b,c,k;

            a = sc.nextInt();
            b = sc.nextInt();
            k = sc.nextInt();
            c = sc.nextInt();

            if(c != a && c != b) {
                System.out.println(0);
                return;
            }

            if(a == b)  {
                System.out.println(k);
                return;
            }

            BigInteger result = new BigInteger("1");

            for(int i = 1; i <= k; ++i) {
                result = result.multiply(new BigInteger("2"));
            }

            BigInteger finalResult = result.multiply(new BigInteger(String.valueOf(k))).divide(new BigInteger("2"));

            String resultToPrint = finalResult.mod(new BigInteger("1000000007")).toString();
            System.out.println(resultToPrint);
    }
}

