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

#include <stdio.h>

const int gx[] = { 1, 3, 5, 7, 8, 10, 12 };
const int gy[] = { 4, 6, 9, 11 };

int isX(int a);
int isY(int a);
int getG(int a);

int main(void)
{
  int x, y;

  scanf("%d %d", &x, &y);

  x = getG(x);
  y = getG(y);

  if (x == y) printf("Yes\n");
  else        printf("No\n");

  return 0;
}

int isX(int a)
{
  int i;
  for (i = 0; i < sizeof(gx) / sizeof(int); i++) {
    if (gx[i] == a) return 1;
  }
  return 0;
}

int isY(int a)
{
  int i;
  for (i = 0; i < sizeof(gy) / sizeof(int); i++) {
    if (gy[i] == a) return 1;
  }
  return 0;
}

int getG(int a)
{
  if (isX(a)) return 0;
  if (isY(a)) return 1;
  return 2;
}