#include <stdio.h>
#include <stdlib.h>
#define NMAX 5000000
int p2[NMAX + 1];
int p3[NMAX + 1];
int p5[NMAX + 1];
void puteri(int r, int pas, int p[]){
int i, ci;
for(i = pas; i <= r; i+=pas){
ci = i;
while(ci % pas == 0){
p[i]++;
ci /= pas;
}
}
for(i = 1; i <= r; i++){
p[i]+=p[i - 1];
}
}
int main()
{
FILE*fin,*fout;
int r, d, divizibile, j, psus, pjos, ptot, psus2, pjos2, psus3, pjos3, ptot3, ptot2;
fin = fopen("pascal.in", "r");
fout = fopen("pascal.out", "w");
fscanf(fin, "%d%d", &r, &d);
if(d == 2){
puteri(r, 2, p2);
divizibile = 0;
for(j = 0; j < r; j++){
psus = p2[r] - p2[j];
pjos = p2[r - j];
ptot = psus - pjos;
if(ptot > 0)
divizibile++;
}
fprintf(fout, "%d", divizibile);
}else if(d == 3){
puteri(r, 3, p3);
divizibile = 0;
for(j = 0; j < r; j++){
psus = p3[r] - p3[j];
pjos = p3[r - j];
ptot = psus - pjos;
if(ptot > 0)
divizibile++;
}
fprintf(fout, "%d", divizibile);
}else if(d == 4){
puteri(r, 2, p2);
divizibile = 0;
for(j = 0; j < r; j++){
psus = p2[r] - p2[j];
pjos = p2[r - j];
ptot = psus - pjos;
if(ptot > 1)
divizibile++;
}
fprintf(fout, "%d", divizibile);
}else if(d == 5){
puteri(r, 5, p5);
divizibile = 0;
for(j = 0; j < r; j++){
psus = p5[r] - p5[j];
pjos = p5[r - j];
ptot = psus - pjos;
if(ptot > 0)
divizibile++;
}
fprintf(fout, "%d", divizibile);
}else if(d == 6){
puteri(r, 2, p2);
puteri(r, 3, p3);
divizibile = 0;
for(j = 0; j < r; j++){
psus2 = p2[r] - p2[j];
pjos2 = p2[r - j];
ptot2 = psus2 - pjos2;
psus3 = p3[r] - p3[j];
pjos3 = p3[r - j];
ptot3 = psus3 - pjos3;
if(ptot2 > 0 && ptot3 > 0)
divizibile++;
}
fprintf(fout, "%d", divizibile);
}
fclose(fin);
fclose(fout);
return 0;
}