use std::collections::HashSet; fn main() { let mut xx = String::new(); std::io::stdin().read_line(&mut xx).ok(); let xx: Vec = xx.split_whitespace().flat_map(str::parse).collect(); let mut coord: HashSet<_> = std::iter::once((0, 0)).collect(); for _ in 0..3 { let mut new_coord = coord.clone(); for &(x, y) in &coord { new_coord.extend([ (x - 2, y - 1), (x - 2, y + 1), (x - 1, y - 2), (x - 1, y + 2), (x + 1, y - 2), (x + 1, y + 2), (x + 2, y - 1), (x + 2, y + 1), ]); } coord = new_coord; } if coord.contains(&(xx[0], xx[1])) { println!("YES"); } else { println!("NO"); } }