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: Wrong Answer)

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<cmath>
using namespace std;

template<typename A, typename B> bool chmin(A &a, const B &b){ return b < a && (a = b, true); }
template<typename A, typename B> bool chmax(A &a, const B &b){ return a < b && (a = b, true); }

int main(){
  int x,y,a[7] = {1,3,5,7,8,10,12},b[4] = {4,6,9,11};
  cin >> x >> y;
  if (x == 2 || y == 2){
    cout << "No\n";
    return 0;
  }
  for (int i = 0; i < 12; i++){
    if (x == a[i]){
      for (int j = 0; j < 12; j++){
        if (y == a[j]){
          cout << "Yes\n";
          return 0;
        }
      }
    }
  }
  for (int i = 0; i < 4; i++){
    if (x == b[i]){
      for (int j = 0; j < 4; j++){
        if (y == b[j]){
          cout << "Yes\n";
          return 0;
        }
      }
    }
  }
  cout << "No\n";
  return 0;
}