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::collections::HashMap;

fn getline() -> String {
    let mut __ret = String::new();
    std::io::stdin().read_line(&mut __ret).ok();
    return __ret;
}

fn main() {
    let s = getline();
    let vec: Vec<_> = s.trim().split(' ').collect();
    let x: i32 = vec[0].parse().unwrap();
    let y: i32 = vec[1].parse().unwrap();

    let mut group_hash: HashMap<i32, i32> = HashMap::new();

    for n in vec![1, 3, 5, 7, 8, 10, 12].iter() {
        group_hash.insert(*n, 1);
    }

    for n in vec![4, 6, 9, 11].iter() {
        group_hash.insert(*n, 2);
    }

    group_hash.insert(2, 3);

    let ans = if group_hash.get(&x) == group_hash.get(&y) {
        "Yes"
    } else {
        "No"
    };

    println!("{} ", ans);
}