#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; unsigned xor128(){ static unsigned x=123456789,y=362436069,z=521288629,w=88675123; unsigned t; t=(x^(x<<11));x=y;y=z;z=w; return( w=(w^(w>>19))^(t^(t>>8)) ); } const int dy[] = {-2, -2, -1, -1, 1, 1, 2, 2}; const int dx[] = {-1, 1, -2, 2, -2, 2, -1, 1}; int main() { int gx, gy; cin >> gx >> gy; for(int t=0; t<100000; ++t){ int x = 0; int y = 0; for(int i=0; i<=3; ++i){ if(x == gx && y == gy){ cout << "YES" << endl; return 0; } int j = xor128() % 8; x += dx[j]; y += dy[j]; } } cout << "NO" << endl; return 0; }