#include <algorithm>
using namespace std;
int r,d;
inline int min( int a, int b ) {
if( a < b )
return a;
return b;
}
void solve() {
int i, x, exp1, exp2, exp3, exp4, exp5, exp6, k = 0;
scanf("%d%d",&r,&d);
if( d == 4 ) {
if( ( r & 1 ) == 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 / 2 > exp2 / 2 + exp3 / 2 )
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 / 2 > exp2 / 2 + exp3 / 2 )
++ k;
}
else if( ( r & 1 ) == 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 / 2 > exp2 / 2 + exp3 / 2 )
k += 2;
}
}
else if( d == 6 ) {
if( ( r & 1 ) == 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 );
exp1 = min( exp1, exp4 );
exp2 = min( exp2, exp5 );
exp3 = min( exp3, exp6 );
if( exp1 > exp2 + exp3 )
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 );
exp1 = min( exp1, exp4 );
exp2 = min( exp2, exp5 );
exp3 = min( exp3, exp6 );
if( exp1 > exp2 + exp3 )
++ k;
}
else if( ( r & 1 ) == 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 );
exp1 = min( exp1, exp4 );
exp2 = min( exp2, exp5 );
exp3 = min( exp3, exp6 );
if( exp1 > exp2 + exp3 )
k += 2;
}
}
else {
if( ( r & 1 ) == 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 & 1 ) == 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;
}