#include using namespace std; const long long mod=1e9+7; long long dp[2][100002]; long long countArray(int n, long long k, int x) { long long ans=1; for(int i=4;i<=n;i++){ dp[1][i]=(k-1)*dp[0][i-1]%mod; dp[0][i]=(dp[1][i-1]+(k-2)*dp[0][i-1])%mod; } if(x==1) return dp[1][n]; else return dp[0][n]; } int main() { int n; long long k; int x; cin >> n >> k >> x; dp[0][3]=k-2; dp[1][3]=k-1; long long answer = countArray(n, k, x); cout << answer << endl; return 0; }