#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const double pi=3.141592653589793;
typedef unsigned long long ull;
typedef long double ldouble;
const ll INF=1e18;
#define rep(i, n) for(ll i = 0; i < (ll)(n); i++)
#define rep2(i, s, n) for (ll i = (s); i < (ll)(n); i++)
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }

ll pow(ll x, ll n) {
  ll res = 1;
  rep(i, n){
    res *= x;
  }
  return res;
}

int main(){
  int n, z;
  cin >> n >> z;
  ll zn = pow(z, n);
  rep2(x, 1, z) {
    rep2(y, 1, z){
      if(pow(x, n) + pow(y, n) == zn){
        cout << "Yes" << endl;
        return 0;
      }
    }
  }
  cout << "No" << endl;
}