#include using namespace std; #define int long long typedef pairpint; typedef vectorvint; typedef vectorvpint; #define pb push_back #define mp make_pair #define fi first #define se second #define all(v) (v).begin(),(v).end() #define rep(i,n) for(int i=0;i<(n);i++) #define reps(i,f,n) for(int i=(f);i<(n);i++) #define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++) templateinline void chmin(T &t,U f){if(t>f)t=f;} templateinline void chmax(T &t,U f){if(t>=1; } return ret; } int C(int n,int k){ return fact[n]*inv[k]%mod*inv[n-k]%mod; } signed main(){ fact[0]=1; for(int i=1;i<222222;i++)fact[i]=fact[i-1]*i%mod; inv[222222-1]=mpow(fact[222222-1],mod-2); for(int i=222222-2;i>=0;i--)inv[i]=inv[i+1]*(i+1)%mod; int N,K; cin>>N>>K; int ans=0; for(int i=1;i<=K;i++){ int tmp=1; if((K-i)&1)tmp=mod-1; tmp=tmp*C(K,i)%mod; tmp=tmp*mpow(i,N)%mod; ans=(ans+tmp)%mod; } cout<