#include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = unsigned; using u64 = unsigned long long; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { int n, z; cin >> n >> z; if(z == 1) puts("No"); else if(n == 1) puts("Yes"); else if(n >= 3) puts("No"); else { for (int i = 1; i*i <= z*z; ++i) { for (int j = 1; i*i+j*j <= z*z; ++j) { if(i*i+j*j == z*z) { puts("Yes"); return 0; } } } puts("No"); } return 0; }