Problem:
Score : 100 points

Problem Statement

Based on some criterion, Snuke divided the integers from 1 through 12 into three groups as shown in the figure below.
Given two integers x and y (1 ≤ x < y ≤ 12), determine whether they belong to the same group.

Constraints

x and y are integers.

1 ≤ x < y ≤ 12

Input

Input is given from Standard Input in the following format:

x y

Output

If x and y belong to the same group, print Yes; otherwise, print No.

Sample Input 1

1 3

Sample Output 1

Yes

Sample Input 2

2 4

Sample Output 2

No

Solution in Rust (1.15.1) (judge verdict: Accepted)


use std::io;

fn group(x: i32) -> i32 {
    match x {
        1 | 3 | 5 | 7 | 8 | 10 | 12 => 0,
        4 | 6 | 9 | 11 => 1,
        2 => 2,
        _ => -1
    }
}

fn main() {

    let mut input = String::new();

    io::stdin().read_line(&mut input);
    let mut iter = input.split_whitespace();

    let a = iter.next().unwrap().parse::<i32>().unwrap();
    let b = iter.next().unwrap().parse::<i32>().unwrap();

    let a_group = group(a);
    let b_group = group(b);

    if a_group == b_group {
        println!("Yes");
    }
    else {
        println!("No");
    }
}