#include using namespace std; long countArray(int n, int k, int x) { long dp[n + 1][2]; dp[2][1] = 0; dp[2][0] = 1; for (int i = 3; i <= n; i++) { dp[i][1] = (k - 1) * dp[i - 1][0]; dp[i][0] = dp[i - 1][1] + (k - 2) * dp[i - 1][0]; dp[i][1] %= 1000000007; dp[i][0] %= 1000000007; } return dp[n][(x == 1) ? 1 : 0]; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }