#include using namespace std; typedef long long ll; #define REP(i,n) for(ll i=0; i #define VP vector> #define VPP vector>> #define VLL vector #define VVI vector> #define VVLL vector> #define VC vector #define VS vector #define VVC vector> #define VB vector #define VVB vector> #define fore(i,a) for(auto &i:a) typedef pair P; template using min_priority_queue = priority_queue, greater>; const int INF = 1 << 29; const ll INFL = 1LL << 60; const ll mod = 1000000007; int x, y; VI dx = { -2,-2,-1,-1,1,1,2,2 }; VI dy = { -1,1,-2,2,-2,2,-1,1 }; void dfs(int a, int b, int cnt) { if (cnt > 3)return; if (a == x && b == y) { cout << "YES" << endl; exit(0); } REP(i, 8) { dfs(a + dx[i], b + dy[i], cnt + 1); } } int main() { cin >> x >> y; dfs(0, 0, 0); cout << "NO" << endl; }