#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

#include <bits/stdc++.h>
using namespace std;

int A[1010];

int main(){
  int n,z;
  cin>>n>>z;
  
  for(int i=1;i<=1000;i++){
    A[i]=i*i;
  }
  map<int,int> m;
  for(int i=1;i<=1000;i++){
    for(int j=1;j<=1000;j++){
      m[A[i]+A[j]]++;
    }
  }
  
  if(n>=3) cout<<"No"<<endl;
  else if(n==1){
    if(z>=2) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
  }
  else{
    if(m[z*z]>0) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
  }
  
  return 0;
}