#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;

int main(){
  long S, P, M;
  int N = 0;
  cin >> S >> P;
  for(M = 1; M <= sqrt(P); M++){
    if(P%M == 0){
      if(P/M + M == S){
        N = 1;
        break;
      }
    }
  }
  if(N == 1) cout << "Yes" << endl;
  else cout << "No" << endl;
  return 0;
}
// C++ includes
#include <bits/stdc++.h>
// 俳句
using namespace std;

// alias templates
template <class T> using V = vector<T>;
template <class T> using VV = V<V<T>>;

// alias declaration
using ll = long long;
using str = string;

using vll = V<ll>;
using vvll = V<vll>;
using vs = V<str>;

// loops
#define FOR(i, a, b)  for (ll i = (a); i <= (ll)(b); i++) // [a,b]
#define rFOR(i, a, b) for (ll i = (b); i >= (ll)(a); i--) // [b,a]
#define REP(i, a) FOR((i), 0, (ll)(a)-1) // [0,a-1]

// for debug
#define dbg(a) cerr << "  " << (#a) << ": " << (a) << "\n";

// procon common constants
const ll MOD_BIG = 1e9 + 7;

bool sol(void){
    ll s,p;
    cin >> s >> p;
    ll start = 1, end = (s+1) / 2;
    FOR(i,1,sqrt<ll>(p)){
        if(i*(s-i) == p){
            return true;
        }
    }
    return false;
}

int main(void){

    if(sol()){
        cout << "Yes" << endl;
    }else{
        cout << "No" << endl;
    }
}