#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
****************************************************************/