#include<algorithm>
using namespace std;
int r,d;
void solve(){
int i,x,exp1,exp2,exp3,exp4,exp5,exp6,k=0;
scanf("%d%d",&r,&d);
if(d==4){
if(r%2==0){
for(i=0; i<r/2; ++i){
for(x=r,exp1=0; x; exp1+=x/=2);
for(x=i,exp2=0; x; exp2+=x/=2);
for(x=r-i,exp3=0; x; exp3+=x/=2);
if(exp1-exp2-exp3>1)
k+=2;}
for(x=r,exp1=0; x; exp1+=x/=2);
for(x=r/2,exp2=0; x; exp2+=x/=2);
for(x=r/2+1,exp3=0; x; exp3+=x/=2);
if(exp1-exp2-exp3>1)
++k;}
else if(r%2==1)
for(i=0; i<=r/2; ++i){
for(x=r,exp1=0; x; exp1+=x/=2);
for(x=i,exp2=0; x; exp2+=x/=2);
for(x=r-i,exp3=0; x; exp3+=x/=2);
if(exp1-exp2-exp3>1)
k+=2;}}
else if(d==6){
if(r%2==0){
for(i=0; i<r/2; ++i){
for(x=r,exp1=0; x; exp1+=x/=2);
for(x=r,exp4=0; x; exp4+=x/=3);
for(x=i,exp2=0; x; exp2+=x/=2);
for(x=i,exp5=0; x; exp5+=x/=3);
for(x=r-i,exp3=0; x; exp3+=x/=2);
for(x=r-i,exp6=0; x; exp6+=x/=3);
if(exp1>exp2+exp3&&exp4>exp5+exp6)
k+=2;}
for(x=r,exp1=0; x; exp1+=x/=2);
for(x=r,exp4=0; x; exp4+=x/=3);
for(x=r/2,exp2=0; x; exp2+=x/=2);
for(x=r/2,exp5=0; x; exp5+=x/=3);
for(x=r/2+1,exp3=0; x; exp3+=x/=2);
for(x=r/2+1,exp6=0; x; exp6+=x/=3);
if(exp1>exp2+exp3&&exp4>exp5+exp6)
++k;}
else if(r%2==1)
for(i=0; i<=r/2; ++i){
for(x=r,exp1=0; x; exp1+=x/=2);
for(x=r,exp4=0; x; exp4+=x/=3);
for(x=i,exp2=0; x; exp2+=x/=2);
for(x=i,exp5=0; x; exp5+=x/=3);
for(x=r-i,exp3=0; x; exp3+=x/=2);
for(x=r-i,exp6=0; x; exp6+=x/=3);
if(exp1>exp2+exp3&&exp4>exp5+exp6)
k+=2;}}
else{
if(r%2==0){
for(i=0; i<r/2; ++i){
for(x=r,exp1=0; x; exp1+=x/=d);
for(x=i,exp2=0; x; exp2+=x/=d);
for(x=r-i,exp3=0; x; exp3+=x/=d);
if(exp1>exp2+exp3)
k+=2;}
for(x=r,exp1=0; x; exp1+=x/=d);
for(x=r/2,exp2=0; x; exp2+=x/=d);
for(x=r/2+1,exp3=0; x; exp3+=x/=d);
if(exp1>exp2+exp3)
++k;}
else if(r%2==1)
for(i=0; i<=r/2; ++i){
for(x=r,exp1=0; x; exp1+=x/=d);
for(x=i,exp2=0; x; exp2+=x/=d);
for(x=r-i,exp3=0; x; exp3+=x/=d);
if(exp1>exp2+exp3)
k+=2;}}
printf("%d",k);}
int main(){
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
solve();
return 0;}