#include #define SIZE 100010 using namespace std; typedef long long ll; ll dp[SIZE], mod = 1e9 + 7; long countArray(int n, int k, int x) { // Return the number of ways to fill in the array. ll prd = 1; dp[2] = (x == 1) ? 0 : 1; for (int i = 3 ; i <= n ; ++i) { prd = (prd * (k - 1)) % mod; dp[i] = (prd - dp[i - 1] + mod) % mod; } return dp[n]; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }