use std::collections::HashSet;

fn main() {
    let mut xx = String::new();
    std::io::stdin().read_line(&mut xx).ok();
    let xx: Vec<i64> = 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");
    }
}