def f(n): dig=0 while pow(10,2*dig) < n: dig+=1 sq=0 for k in reversed(range(0,dig+1)): for l in range(0,10): sq+=10**k if sq*sq==n: break if sq*sq>n: sq-=10**k break return sq num=0 X=[] k,N=map(int,input().split()) for x in range(1,int(N**(1/6))+10): for y in range(1,int(N**(1/4))+10): n=x**6+y**4 if n%k==0 and n<=N: m=n//k if f(m)**2==m: num+=1 X.append(n) print(len(set(X)))