#include #include #include #include #include #include #include #include #include #define REP(i,k,n) for(int i=k;i P; int dx[8] = {-2,-2,-1,-1, 1, 1, 2, 2}; int dy[8] = {-1, 1,-2,+2,-2, 2,-1, 1}; int main() { int x,y; cin >> x >> y; queue,int > > que; que.push(mp(mp(0,0),0)); set

st; st.insert(P(0,0)); while(que.size()) { P p = que.front().first; int cnt = que.front().second; que.pop(); rep(i,8) { int ny = p.first + dy[i]; int nx = p.second + dx[i]; if(st.find(P(ny,nx)) == st.end() && cnt <= 2) { st.insert(P(ny,nx)); que.push(mp(mp(ny,nx),cnt+1)); } } } if(st.find(P(y,x)) != st.end()) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; }