//teja349 #include #include #include #include #include #include #include #include #include #include #include #include #include #include //setbase - cout << setbase (16); cout << 100 << endl; Prints 64 //setfill - cout << setfill ('x') << setw (5); cout << 77 << endl; prints xxx77 //setprecision - cout << setprecision (14) << f << endl; Prints x.xxxx using namespace std; #define f(i,a,b) for(i=a;i=b;i--) #define pb push_back #define mp make_pair #define vi vector< int > #define vl vector< ll > #define ss second #define ff first #define ll long long #define pii pair< int,int > #define pll pair< ll,ll > #define sz(a) a.size() #define inf (1000*1000*1000+5) #define all(a) a.begin(),a.end() #define tri pair #define vii vector #define vll vector #define viii vector #define mod (1000*1000*1000+7) #define pqueue priority_queue< int > #define pdqueue priority_queue< int,vi ,greater< int > > //std::ios::sync_with_stdio(false); ll n,k,x,ans[123456]; ll calc(ll n,ll x){ if(n==1){ if(x==1) return k-1; else return k-2; } ll val= ans[n]-calc(n-1,x); val%=mod; val+=mod; val%=mod; return val; } int main(){ std::ios::sync_with_stdio(false); cin>>n>>k>>x; int i; ans[0]=1; f(i,1,n+10){ ans[i]=ans[i-1]*(k-1); ans[i]%=mod; } cout<