#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f=fopen("pascal.in","r");
FILE *g=fopen("pascal.out","w");
int F[4];
int E[4];
int r[4];
int lg[3][5000005];
int D;
int R;
void desc(int D)
{
if(D==2){F[0]=E[1]=1;F[1]=2;}
else if(D==3){F[0]=E[1]=1;F[1]=3;}
else if(D==4){F[0]=1;E[1]=2;F[1]=2;}
else if(D==5){F[0]=1;E[1]=1;F[1]=5;}
else if(D==6){F[0]=2;E[1]=1;E[2]=1;F[1]=2;F[2]=3;}
}
int log(int i,int val)
{
if(!lg[i][val]&&val!=1&&val%F[i]==0)
lg[i][val]=1+log(i,val/F[i]);
return lg[i][val];
}
int mod(int val,int sgn)
{
for(int i=1;i<=F[0];i++)
{
r[i]+=log(i,val);
}
}
bool eval()
{
int R=(1<<30);
for(int i=1;i<=F[0];i++)
R=min(R,r[i]/E[i]);
return R>0;
}
int main()
{
fscanf(f,"%d %d",&R,&D);
desc(D);
int rez=0;
for(int i=1;i<(R+1)/2+(R+1)%2;i++)
{
mod(R-i+1,1);
mod(i,-1);
if(eval())
rez+=(1+(2*i!=R));
}
fprintf(g,"%d",rez);
fclose(f);
fclose(g);
return 0;
}