import java.util.Scanner; public class Solution { private static final long MOD = 1000000007L; private static long countArray(int n, int k, int x) { long[] dp = new long[2]; dp[0] = 1; for (int i = 1; i < n; i++) { long top = dp[1] * (k - 1) % MOD; long bottom = (dp[0] + dp[1] * (k - 2)) % MOD; dp[0] = top; dp[1] = bottom; } if (x > 1) { return dp[1]; } else { return dp[0]; } } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int k = in.nextInt(); int x = in.nextInt(); long answer = countArray(n, k, x); System.out.println(answer); in.close(); } }