#include <stdio.h>
#define RMAX 5000005
int R, D;
inline int pwr(int r, int i, int ri, int div)
{
int count = 0, aux;
aux = r;
while(aux)
{
count += aux/div;
aux /= div;
}
aux = i;
while(aux)
{
count -= aux/div;
aux /= div;
}
aux = ri;
while(aux)
{
count -= aux/div;
aux /= div;
}
return count;
}
int nr(int r, int d)
{
int count = 0, i, aux[3];
for (i = 1; i <= r/2; i++)
{
if (d == 2)
count += (pwr(r, i, r-i, 2) > 0 ? 1 : 0);
else if (d == 3)
count += (pwr(r, i, r-i, 3) > 0 ? 1 : 0);
else if (d == 4)
count += (pwr(r, i, r-i, 2) >= 2 ? 1 : 0);
else if (d == 5)
count += (pwr(r, i, r-i, 5) > 0 ? 1 : 0);
else if (d == 6)
count += (pwr(r, i, r-i, 2) && pwr(r, i, r-i, 3) ? 1 : 0);
}
count *= 2;
if ((r/2)*2 == r)
{
if (d == 2)
count -= (pwr(r, r/2, r/2, 2) > 0 ? 1 : 0);
else if (d == 3)
count -= (pwr(r, r/2, r/2, 3) > 0 ? 1 : 0);
else if (d == 4)
count -= (pwr(r, r/2, r/2, 2) >= 2 ? 1 : 0);
else if (d == 5)
count -= (pwr(r, r/2, r/2, 5) > 0 ? 1 : 0);
else if (d == 6)
count -= (pwr(r, r/2, r/2, 2) && pwr(r, r/2, r/2, 3) ? 1 : 0);
}
return count;
}
int main()
{
FILE *in, *out;
in = fopen("pascal.in", "r");
out = fopen("pascal.out", "w");
fscanf(in, "%d %d", &R, &D);
fprintf(out, "%d\n", nr(R, D));
fclose(in);
fclose(out);
return 0;
}