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 C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void){
  vector<vector<int>> g{{1,3,5,7,8,10,12},{4,6,9,11},{2}};
  
  int x,y;
  int g_x, g_y;
  
  cin >> x >> y;
  
  for(int i = 0 ; i < 3 ; i++){
    auto itr_x = find(g[i].begin(), g[i].end(), x);
    auto itr_y = find(g[i].begin(), g[i].end(), y);
    
    if(itr_x != g[i].end()) g_x = i;
    if(itr_y != g[i].end()) g_y = i;
  }
  
  cout << (g_x == g_y ? "Yes" : "No") << endl;
  
  return 0;
}