#include <bits/stdc++.h>
using namespace std;
//判断整数n在m进制下是否是回文数
bool huiwen(int n,int m){
int a[1000] = {0};
int k,i;
bool r = true;
k = 0;//a数组的下标
while(n != 0){
a[k] = n % m;
k++;
n = n / m;
}
//遍历a数组,判断回文
for(i = 0;i < k / 2;i++){
if(a[i] != a[k - i - 1]){
r = false;
break;
}
}
return r;
}
int main(){
int n,m,i,c = 0;
cin>>n>>m;
for(i = 1;i <= n;i++){
if(huiwen(i * i,m)){
c++;
}
}
cout<<c<<endl;
return 0;
}
/**************************************************************
Problem: 1547
User: admin
Language: C++
Result: Accepted
Time:57 ms
Memory:2072 kb
****************************************************************/