import com.sun.deploy.util.StringUtils;

import java.util.ArrayList;
import java.util.Scanner;

public class Barrels {

    public static void main(String[] args) {
        ArrayList<String> moznosti = new ArrayList<String>();
        int a,b,c,k, count;
        String text;
        Scanner sken = new Scanner(System.in);
        a = sken.nextInt();
        b = sken.nextInt();
        k = sken.nextInt();
        c = sken.nextInt();

        while(!(a>0 && a<10)){
            System.out.println("Hodnota a nespĺňa kritéria");
            a = sken.nextInt();
        }
        while(!(b>0 && b<10)){
            System.out.println("Hodnota b nespĺňa kritéria");
            b = sken.nextInt();
        }
        while(!(k>=0 && k<=1000)){
            System.out.println("Hodnota k nespĺňa kritéria");
            k = sken.nextInt();
        }
        while(!(c == a || c==b)){
            System.out.println("Hodnota c nespĺňa kritéria");
            c = sken.nextInt();
        }

        int vysledok = (int) (((Math.pow(2,k-1)*k))%1000000007);
        System.out.println(vysledok);
    }
}

