#include #include #include #include #define MODD 1000000007 #define MAXN 111111 #define ll long long using namespace std; ll dp[2][MAXN+2]; int main() { ll n,k,x; cin>>n>>k>>x; // 1, others dp[0][1]=1; dp[1][1]=0; for(int j=2;j<=n;j++) { // dp[0][j] // dp[1][j] dp[0][j]=((k-1)*dp[1][j-1])%MODD; dp[1][j]=dp[0][j-1]+(k-2)*dp[1][j-1]; dp[0][j]%=MODD; dp[1][j]%=MODD; } if (x == 1) cout << dp[0][n] << endl; else cout << dp[1][n] << endl; }