#include using namespace std; #define ll long long int #define MOD 1000000007 #define M(x) (x%MOD + MOD)%MOD #define _pb push_back #define _mp make_pair #define ff first #define ss second #define s(x) scanf("%lld",&x) ll mul(ll x,ll y) { ll ans=1; while(y>0) { if(y&1) ans=(ans*x)%MOD; y/=2; x=(x*x)%MOD; } return ans; }; /**********************************************/ ll dp[100009][3]; int main() { ll n,k,x,i; s(n); s(k); s(x); dp[1][2] = 1; for(i=2;i<=n-1;i++) { dp[i][1] = M((k-1)*dp[i-1][2]); dp[i][2] = M((k-2)*dp[i-1][2] + dp[i-1][1]); } if(x==1) cout<