#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define RALL(x) (x).rbegin(),(x).rend() #define ALL(x) (x).begin(),(x).end() #define repp(i,n) for(int (i)=1;(i)<=(n);(i)++) #define rep(i,n) for(int (i)=0;(i)<(n);(i)++) #define rev(i,n) for(int (i)=(n-1);(i)>=0;(i)--) #define clr(a) memset((a), 0 ,sizeof(a)) typedef pair P; typedef vector > pii; typedef map mdi; int dx[8]={-1,-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 qx,qy,qc; qx.push(0); qy.push(0); qc.push(0); while(!qx.empty()){ int x1=qx.front();qx.pop(); int y1=qy.front();qy.pop(); int c1=qc.front();qc.pop(); if(c1>3)continue; if(x1==x&&y1==y){ cout << "YES" << endl; return 0; } for(int i=0;i<8;i++){ qx.push(x1+dx[i]); qy.push(y1+dy[i]); qc.push(c1+1); } } cout << "NO" << endl; return 0; }