/* Boris Todorov Peltekov
   8e SMG
*/
#include<stdio.h>
#include<conio.h>
#include<math.h>

int p,k;

void Init()
{
scanf("%d %d",&p,&k);
}

int IsSimple(int t)
{
double b;
int c=2;
if (t == 2)
   return 1;
b = sqrt(t);
while (c <= b)
{
   if (t % c == 0)
      return 0;
   c++;
}
return 1;
}

int Delitel(int s)
{
int i;
for(i=2;i<=s/2;i++)
   if (s % i == 0)
      return i;
}

int Proizvod(int num)
{
int u;
if (num == 1)
   return 0;
if (IsSimple(num) == 1)
   return 1;
u = Delitel(num);
return (Proizvod(u)*num/u + u*Proizvod(num/u));
}

void Solve()
{
int i,curRes=Proizvod(p);
for(i=1;i<k;i++)
   curRes = Proizvod(curRes);
printf("%d\n",curRes);
}

int main()
{
clrscr();
Init();
Solve();
getch();
return 0;
}