import java.util.Locale; import java.util.Scanner; public class ConstructTheArray { public static void main(String[] args) { try (Scanner in = new Scanner(System.in)) { in.useLocale(Locale.ENGLISH); int n = in.nextInt(); int k = in.nextInt(); int x = in.nextInt(); long a = 0; long b = 1; for (int i = 3; i <= n; i++) { long a2 = (k - 1) * b; a2 %= Constants.MODULUS; long b2 = (k - 2) * b; b2 %= Constants.MODULUS; b2 += a; b2 %= Constants.MODULUS; a = a2; b = b2; } if (x == 1) { System.out.println(a); } else { System.out.println(b); } } } private static class Constants { public static final long MODULUS = 1000000007; } }