#include<iostream>
using namespace std;
int a,b;
int p[20],c[20],m;
void divide(int x){
for(int i=2;i<=x/i;i++){
if(x%i==0){
p[++m]=i;
while(x%i==0)x/=i,c[m]++;
}
}
if(x>1)p[++m]=x,c[m]=1;
}
int mod=9901;
int power(int a,long long b){
int ans=1;
while(b){
if(b&1)ans=(long long)ans*a%mod;
a=(long long)a*a%mod;
b>>=1;
}
return ans;
}
int main(){
cin>>a>>b;
if(a==0){
cout<<0;
return 0;
}
divide(a);
int ans=1;
for(int i=1;i<=m;i++){
if(!(p[i]-1)%mod){
ans=((long long)b*c[i]+1)%mod*ans%mod;
}
else{
int x=power(p[i],(long long)b*c[i]+1);
x=(x-1+mod)%mod;
int y=power(p[i]-1,mod-2);
ans=(long long)ans*x%mod*y%mod;
}
}
cout<<ans;
return 0;
}