#include <cstdio>
using namespace std;
bool vf2=0, vf3=0, vf5=0;
int vp2, vp22, vp3, vp32, vp5, vp52, vpn2, vpn3, vpn5;
int vp(int n, int p)
{
int vpn=0;
while(n%p==0)
{
vpn++;
n/=p;
}
return vpn;
}
int n;
int main()
{
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
int d, lim, nr=0;
scanf("%d%d", &n, &d);
lim=n/2;
if(d==2 || d==3 || d==5)
{
int vnew, vold, vtotal=0;
for(int i=1;i<=lim;i++)
{
vnew=vp(i, d);
vold=vp(n-i+1, d);
vtotal+=(vold-vnew);
if(vtotal>0)nr++;
}
nr*=2;
if(n%2==0 && vtotal>0)nr--;
printf("%d", nr);
}
else if(d==6)
{
int vnew2, vold2, vnew3, vold3, vtotal2=0, vtotal3=0;
for(int i=1;i<=lim;i++)
{
vnew2=vp(i, 2);
vold2=vp(n-i+1, 2);
vtotal2+=(vold2-vnew2);
vnew3=vp(i, 3);
vold3=vp(n-i+1, 3);
vtotal3+=(vold3-vnew3);
if(vtotal2>0 && vtotal3>0)nr++;
}
nr*=2;
if(n%2==0 && vtotal2>0 && vtotal3>0)nr--;
printf("%d", nr);
}
else if(d==4)
{
int vnew, vold, vtotal=0;
for(int i=1;i<=lim;i++)
{
vnew=vp(i, d);
vold=vp(n-i+1, d);
vtotal+=(vold-vnew);
if(vtotal>1)nr++;
}
nr*=2;
if(n%2==0 && vtotal>0)nr--;
printf("%d", nr);
}
return 0;
}