#include<stdio.h>
long long n,n1,d,k1,ka,k2,k3,k11,k22,k33,k,rezf;
long long doi[]={2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608};
long long trei[]={3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14348907};
long long cinci[]={5,25,125,625,3125,15625,78125,390625,1953125,9765625};
long long afla(long long x,long long *a)
{
int i=0;
long long rez=0;
while(x>=a[i])
{
rez=rez+x/a[i];
i++;
}
return rez;
}
void coord2()
{
long long i;
for(i=1; i<n1; i++)
{
k2=afla(i,doi);
k3=afla(n-i,doi);
k=k1-k2-k3;
if(k>0)
rezf++;
}
rezf<<=1;
if(!(n&1))
{
k2=afla(n1,doi);
k3=k2;
k=k1-k2-k3;
if(k>0)
rezf++;
}
}
void coord3()
{
long long i;
for(i=1; i<n1; i++)
{
k2=afla(i,trei);
k3=afla(n-i,trei);
k=k1-k2-k3;
if(k>0)
rezf++;
}
rezf<<=1;
if(!(n&1))
{
k2=afla(n1,trei);
k3=k2;
k=k1-k2-k3;
if(k>0)
rezf++;
}
}
void coord4()
{
long long i;
for(i=1; i<n1; i++)
{
k2=afla(i,doi);
k3=afla(n-i,doi);
k=k1-k2-k3;
k>>=1;
if(k>0)
rezf++;
}
rezf<<=1;
if(!(n&1))
{
k2=afla(n1,doi);
k3=k2;
k=k1-k2-k3;
k>>=1;
if(k>0)
rezf++;
}
}
void coord5()
{
long long i;
for(i=1; i<n1; i++)
{
k2=afla(i,cinci);
k3=afla(n-i,cinci);
k=k1-k2-k3;
if(k>0)
rezf++;
}
rezf<<=1;
if(!(n&1))
{
k2=afla(n1,cinci);
k3=k2;
k=k1-k2-k3;
if(k>0)
rezf++;
}
}
void coord6()
{
long long i;
for(i=1; i<n1; i++)
{
k2=afla(i,doi);
k3=afla(n-i,doi);
k22=afla(i,trei);
k33=afla(n-i,trei);
k=k1-k2-k3;
ka=k11-k22-k33;
if((k>0)&&(ka>0))
rezf++;
}
rezf<<=1;
if(!(n&1))
{
k2=afla(n1,doi);
k3=k2;
k22=afla(n1,trei);
k33=k22;
k=k1-k2-k3;
ka=k11-k22-k33;
if((ka>0)&&(k>0))
rezf++;
}
}
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%lld%lld",&n,&d);
n1=n>>1;
if(n&1)
n1++;
if(d==2)
k1=afla(n,doi);
else
if(d==3)
k1=afla(n,trei);
else
if(d==4)
k1=afla(n,doi);
else
if(d==5)
k1=afla(n,cinci);
else
if(d==6)
{
k1=afla(n,doi);
k11=afla(n,trei);
}
if(k1==0)
{
printf("0\n");
return 0;
}
switch(d)
{
case 2: coord2(); break;
case 3: coord3(); break;
case 4: coord4(); break;
case 5: coord5(); break;
case 6: coord6(); break;
}
printf("%lld\n",rezf);
return 0;
}