#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define fix(n) cout<; const ll MOD = 1000000007; // 10^9 + 7 const int dx[8] = {-2,-2,-1,-1, 1,1,2, 2}; const int dy[8] = {-1, 1, 2,-2,-2,2,1,-1}; void solve() { ll x, y; cin >> x >> y; queue qx, qy, qc; qx.push(0); qy.push(0); qc.push(0); while (!qx.empty()) { ll xi = qx.front(); qx.pop(); ll yi = qy.front(); qy.pop(); ll ci = qc.front(); qc.pop(); // debug3(xi, yi, ci); if (xi == x && yi == y) { YES(); return; } if (ci == 3) continue; for (int i = 0; i < 8; i++) { int nx = xi + dx[i]; int ny = yi + dy[i]; qx.push(nx); qy.push(ny); qc.push(ci + 1); } } NO(); } signed main() { cin.tie(0); ios::sync_with_stdio(false); srand((unsigned)time(NULL)); fix(12); solve(); }