#include <fstream>
#define MOD 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
long long A,B;
long long Prime[5000005],Exp[5000005];
void Prime_Facts()
{
long long i=2;
long long initial=A;
while(i*i<=initial && A>0)
{
if(A%i==0)
Prime[++Prime[0]]=i;
while(A%i==0)
{
Exp[Prime[0]]++;
A/=i;
}
i++;
}
if(A!=1)
{
Prime[++Prime[0]]=A;
Exp[Prime[0]]=1;
}
}
long long Power_Log(long long N,long long P)
{
long long sol=1;
while(P>0)
{
if(P%2==1)
sol=(sol*N)%MOD;
N=(N*N)%MOD;P/=2;
}
return sol;
}
void Browse()
{
long long result=1;
if(A==0)
{
g<<0<<"\n";
return;
}
if(B==0 || A==1)
{
g<<1<<"\n";
return;
}
for(long long i=1;i<=Prime[0];i++)
{
long long exponent=Exp[i]*B;
long long value=Power_Log(Prime[i],exponent+1);
value--;
value+=MOD;
value%=MOD;
result*=value*Power_Log(Prime[i]-1,MOD-2);
result%=MOD;
}
g<<result<<"\n";
}
int main()
{
f>>A>>B;
Prime_Facts();
Browse();
return 0;
}