#include<bits/stdc++.h>
#define endl "\n"
using namespace std;
long long a,b,mod=9901,ans=1,cnt,top,x;
long long get(long long i,long long j){
long long su=1;
while(j){
if(j&1)
su=(long long)su*i%mod;
i=i*i%mod;
j/=2;
}
return su;
}
long long sum(long long p,long long c){
if(c==1)
return (1+p)%mod;
if(c==0)
return 1;
if(c%2==1){
return ((long long)(1+get(p,(c+1)/2))*sum(p,(c-1)/2))%mod;
}
else{
return ((long long)(1+get(p,(c/2)+1))*sum(p,(c/2)-1)+get(p,c/2))%mod;
}
}
signed main(){
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
long long n;
cin>>a>>b;
if(a==0){
cout<<"0";
return 0;
}
x=a;
for(long long i=2;i<=a;i++){
if(x==1)
break;
if(x%i==0){
long long j=i,k=1;
while(x%j==0){
j=j*i;
k++;
}
k--;
j/=i;
ans=(long long)(ans*sum(i,(long long)k*b))%mod;
x/=j;
}
}
cout<<ans;
return 0;//好习惯
}