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;
use std::str::FromStr;

fn main() {
    let mut line = String::new();
    io::stdin().read_line(&mut line).unwrap();
    let split : Vec<&str> = line.split(' ').collect();
    let a : i64 = i64::from_str(split[0].trim()).unwrap();
    let b : i64 = i64::from_str(split[1].trim()).unwrap();

    println!("{}", if same_month(a, b) { "Yes" } else { "No" })
}

fn same_month(a: i64, b: i64) -> bool {
    return match a {
        1 | 3 | 5 | 7 | 8 | 10 | 12 => b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12,
        4 | 6 | 9 | 11 => b == 4 || b == 6 || b == 9 || b == 11,
        2 => b == 2,
        _ => false
    }
}