// BCC /* #include #include #include #include #include #include */ // GCC #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for (int i = (int)(n) - 1; i >= 0; i--) #define each(i, c) for (__typeof((c).begin()) i = (c).begin(); i != (c).end(); ++i) #define chmin(a, b) a = min(a, b) #define chmax(a, b) a = max(a, b) #define pb push_back #define mp make_pair typedef long long ll; const int INF = 1 << 28; const ll INFLL = 1ll << 56; int dx[] = {-2, -2, -1, -1, 1, 1, 2, 2}; int dy[] = {-1, 1, -2, 2, -2, 2, -1, 1}; typedef complex P; int main() { int x, y; scanf("%d %d", &x, &y); vector

v(1, P(0, 0)); vector

d(8); rep(i, 8) d[i] = P(dx[i], dy[i]); rep(i, 1 + (1 << 3) + (1 << 6) + (1 << 9)){ if (v[i] == P(x, y)){ puts("YES"); return 0; } each(dir, d) v.pb(*dir + v[i]); } puts("NO"); }