
/*
A = p1^k1 * p2^k2 * ... * pn^kn
所有的约数的个数:
(k1 + 1) * (k2 + 1) * ... * (kn + 1)
所有的约数之和:
(p1^0 + p1^1 + ... + p1^k1) * (p2^0 + p2^1 + ... + p2^k2) * ... *
(pn^0 + pn^1 + ... + pn^kn)
*/
/*
sum(p, k) = p^0 + p^1 + ... + p^k
= (p^0 + ... + p^(k/2)) + (p^(k/2 + 1) + ... + p^k)
= (p^0 + ... + p^(k/2)) + p^(k/2 + 1)*(p^0 + .. + p^(k/2))
= (1 + p^(k/2 + 1)) * sum(p, k / 2)
*/
#include <iostream>
using namespace std;
const int mod = 9901;
// 快速幂
int qmi(int a, int k)
{
a %= mod; // 注意此处要对a模9901
int res = 1;
while(k)
{
if(k & 1) res = res * a % mod;
a = a * a % mod;
k >>= 1;
}
return res;
}
// 等比数列求和
int sum(int p, int k)
{
if(k == 0) return 1;
if(k % 2 == 0) return (p % mod * sum(p, k - 1) + 1) % mod;
return (1 + qmi(p, k/2 + 1)) * sum(p, k / 2) % mod;
}
int main()
{
int A, B;
cin >> A >> B;
int res = 1;
for(int i = 2; i <= A; ++ i)
{
int s = 0;
while(A % i == 0)
{
s ++;
A /= i;
}
if(s) res = res * sum(i, B * s) % mod;
}
if(!A) res = 0;
cout << res << endl;
return 0;
}