#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
long long Pow[7][24]=
{
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608},
{1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14348907,0,0,0,0,0,0,0,0},
{1,4,16,64,256,1024,4096,16384,65536,262144,1048576,4194304,16777216,0,0,0,0,0,0,0,0,0,0,0},
{1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,6,36,216,1296,7776,46656,279936,1679616,10077696,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};
long R,D;
int ExtrageExponent(long n,int D)
{
int nr=0,i=1;
while(n>=Pow[D][i]) nr+=(n/Pow[D][i]),i++;
return nr;
}
bool Valid(int n,int k)
{
int PutereD=ExtrageExponent(n,D)-ExtrageExponent(n-k,D)-ExtrageExponent(k,D);
if(PutereD>0)return true;
return false;
}
long Numara(int R,int D)
{
long nr=0,mijloc=R/2;
if(R % 2==0)
{
mijloc--;
if(Valid(R,R/2)==true)nr++;
}
for(int j=1;j<=mijloc;j++)
if(Valid(R,j)==true)nr+=2;
return nr;
}
int main ()
{
f>>R>>D;
g<<Numara(R,D)<<'\n';
f.close();g.close();
return 0;
}