高々$8^3$個程度の点にしか移動しないので全列挙でよい。

なんとなくyieldを植えてみたが特に利点はなかった。

#!/usr/bin/env python3
def move(x, y):
    for dx, dy in [(-2,-1),(-2,+1),(-1,-2),(-1,+2),(+1,-2),(+1,+2),(+2,-1),(+2,+1)]:
        yield (x + dx, y + dy)
x, y = map(int,input().split())
ps = [(0,0)]
ans = False
for _ in range(3):
    qs = []
    for p in ps:
        qs += list(move(*p))
    ps = qs
    if (x, y) in ps:
        ans = True
print('YES' if ans else 'NO')