package yukicoder; import java.util.ArrayDeque; import java.util.Queue; import java.util.Scanner; public class Main{ int[] dx={2,2,-2,-2,1,-1,1,-1}; int[] dy={1,-1,1,-1,2,2,-2,-2}; public static void main(String[] args)throws Exception{ new Main().solve(); } void solve(){ Scanner sc=new Scanner(System.in); int x=sc.nextInt()+500; int y=sc.nextInt()+500; Queue q=new ArrayDeque(); boolean[][] arrived=new boolean[1000][1000]; q.add(new Coordinate(500,500,0)); arrived[500][500]=true; while(!q.isEmpty()){ Coordinate c=q.poll(); if(c.x==x&&c.y==y){ System.out.println("YES"); return; } if(c.n==3)continue; for(int i=0;i<8;i++){ int nx=c.x+dx[i]; int ny=c.y+dy[i]; if(arrived[ny][nx])continue; arrived[ny][nx]=true; q.add(new Coordinate(nx, ny,c.n+1)); } } System.out.println("NO"); } class Coordinate{ int x,y,n; public Coordinate(int x,int y,int n) { this.x=x;this.y=y;this.n=n; } } }