N, Z = gets.split.map(&:to_i) s = 1 t = 1 while s ** N < Z ** N s += 1 end while t ** N < Z ** N t += 1 end 1.upto(s) do |x| 1.upto(t) do |y| if x ** N + y ** N == Z ** N puts 'Yes' exit end end end puts 'No'