#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long MOD = 1000000007; int knight[8][2] = { {2,1}, {-2,1}, {2,-1}, {-2,-1}, {1,2}, {-1,2}, {1,-2}, {-1,-2} }; vector< pair > P; void dfs( int d, int x, int y ) { P.push_back( make_pair(x,y) ); if ( d == 0 ) { return; } for ( int i = 0; i < 8; i++ ) { dfs( d-1, x+knight[i][0], y+knight[i][1] ); } } int main() { long long X,Y; cin >> X >> Y; dfs( 3, 0, 0 ); bool ans = false; for ( int i = 0; i < P.size(); i++ ) { if ( P[i].first == X && P[i].second == Y ) { ans = true; break; } } cout << ( ans ? "YES" : "NO" ) << endl; return 0; }