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