#include using namespace std; #define mp make_pair #define pb push_back #define len(a) (int)a.size() #define all(a) (a.begin(),a.end()) #define fi first #define sc second #define ort(x,y) (x+y)/2 #define endl '\n' #define FAST ios_base::sync_with_stdio(false); #define d1(x) cerr<<#x<<":"< pii; typedef pair,int> piii; int n,k,x; int fast_pow(int n,int k) { if(k==0) return 1; int re=fast_pow(n,k/2); re=1ll*re*re%p; if(k%2) re=1ll*re*n%p; return re; } int dfs(int n) { if(n==1) return 0; if(n==2) return x!=1; return (1ll*fast_pow(k-1,n-2)-dfs(n-1)+p)%p; } int main() { scanf("%d %d %d",&n,&k,&x); printf("%d\n",dfs(n)); }