import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] first = br.readLine().split(" ", 2); int x = Integer.parseInt(first[0]); int y = Integer.parseInt(first[1]); HashSet cur = new HashSet<>(); cur.add(new Point(0, 0)); for (int i = 0; i < 3; i++) { HashSet next = new HashSet<>(); for (Point p : cur) { next.add(p); next.add(new Point(p.x + 1, p.y + 2)); next.add(new Point(p.x - 1, p.y + 2)); next.add(new Point(p.x + 1, p.y - 2)); next.add(new Point(p.x - 1, p.y - 2)); next.add(new Point(p.x + 2, p.y + 1)); next.add(new Point(p.x - 2, p.y + 1)); next.add(new Point(p.x + 2, p.y - 1)); next.add(new Point(p.x - 2, p.y - 1)); } cur = next; } if (cur.contains(new Point(x, y))) { System.out.println("YES"); } else { System.out.println("NO"); } } static class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; } public int hashCode() { return x + y; } public boolean equals(Object o) { Point p = (Point) o; return x == p.x && y == p.y; } public String toString() { return x + ":" + y; } } }