# x,y二重ループでもいけるか? # xループ+二分探索 # n=1ならば必ず"Yes"でn>=2のみ探索すればよいならx,y二重ループでもいける。 n,z = map(int, input().split()) if n == 1 and z >= 2: print("Yes") exit() smax = z ** n for x in range(1,smax+1): if x ** n > smax: break for y in range(x,smax+1): tmp = x ** n + y ** n if tmp == smax: print("Yes") exit() if tmp > smax: break print("No")