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

public class Barrels {

    public static void main(String[] args) throws IOException {
        new Barrels().solve();
    }

    private void solve() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        int a = Integer.parseInt(line[0]);
        int b = Integer.parseInt(line[1]);
        int k = Integer.parseInt(line[2]);
        int c = Integer.parseInt(line[3]);

        if (a == b) {
            if (c == a) {
                System.out.println(k);
            }
            else {
                System.out.println(0);
            }
        }
        else {
            int temp;
            if (k == 1) {
                temp = 1;
            }
            else {
                temp = 2;
                for (int i = 0; i < k - 2; i++) {
                    temp = (temp * 2) % 1000000007;
                }
            }

            System.out.println((temp*k) % 1000000007);
        }

    }
}

