fn read() -> T where ::Err: std::fmt::Debug, { let mut b = String::new(); std::io::stdin().read_line(&mut b).unwrap(); b.trim().parse().unwrap() } fn dfs(d: i32, cx: i32, cy: i32) -> bool { if cx == 0 && cy == 0 { return true; } if d == 0 { return false; } for dx in (-2)..3 { for dy in (-2)..3 { if (dx as i32).abs() + (dy as i32).abs() != 3 { continue; } if dfs(d - 1, cx + dx, cy + dy) { return true; } } } false } fn main() { let mut b = String::new(); std::io::stdin().read_line(&mut b).unwrap(); let iv: Vec = b .split(' ') .map(|x| x.trim().parse::().unwrap()) .collect(); let (x, y) = (iv[0], iv[1]); println!("{}", if dfs(3, x, y) { "YES" } else { "NO" }) }