#include <iostream.h>

long P,K;

void Read();
void Solve();
long Deriv(long a);

long main()
{
	Read();
	Solve();

	return 0;
}

void Read()
{
	cin>>P>>K;
}

void Solve()
{
	long i;
	long res=P;

	for(i=0;i<K;i++)
		res=Deriv(res);

	cout<<res<<endl;
}

long Deriv(long a)
{
	if(a==1) return 0;

	//prosto

	long i,prosto=1;
	long del1=-1,del2=-1;
	for(i=a-1;i>1;i--)
		if(!(a%i)) {prosto=0; del1=i; break;}

	if(prosto) return 1;

	del2=a/del1;

	long d1,d2;
	d1=Deriv(del1);
	d2=Deriv(del2);

	return ( (d1*del2) + (del1*d2) );
}
