// #pragma GCC optimize("Ofast") // #pragma GCC optimize("unroll-loops") // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include <stdio.h> #include <iostream> #include <vector> #include <algorithm> #include <map> #include <queue> #include <cstdio> #include <ctime> #include <assert.h> #include <chrono> #include <random> #include <numeric> #include <set> #include <deque> #include <stack> #include <bitset> using namespace std; typedef long long int ll; typedef unsigned long long ull; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll myRand(ll B) { return (ull)rng() % B; } bool solve(int n,int z){ if(n>2)return false; if(n==1){ if(z==1)return false; return true; } for(int i=1;i<1000;i++){ for(int j=1;j<1000;j++){ if(i*i+j*j==z*z)return true; } } return false; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n,z; cin >> n >> z; if(solve(n,z))printf("Yes\n"); else printf("No\n"); }