#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int(i) = 0; (i) < (n); (i)++)
typedef long long ll;
#define MOD 1000000007

ll ll_pow(ll a, ll b) {
  if (b == 0) {
    return 1;
  }
  return a * ll_pow(a, b - 1);
}

int main() {
  ll S, P;
  cin >> S >> P;
  vector<pair<ll, ll>> v;

  for (ll i = 1; i <= sqrt(P); ++i) {
    if (P % i == 0) {
      pair<ll, ll> p = make_pair(i, P / i);
      v.push_back(p);
    }
  }

  for (auto i : v) {
    if (i.first + i.second == S) {
      cout << "Yes" << endl;
      return 0;
    }
  }

  cout << "No" << endl;
  return 0;
}

#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep2(i, j, k) for(int i = j; i < k; i++)
#define print(x) cout << x
#define newline cout << endl
#define space cout << ' '
#define INF 1000000007
using namespace std;
using ll = long long;
using vi = vector<int>;
using vl = vector<ll>;

int main(){
    ll s,p;
    cin >> s >> p;
    rep(i,1000001){
        if(i*(s-i)==p){
            print("Yes");
            return 0;
        }
        if(i>=s||i>=p) break;
    }
    print("No");
    return 0;
}