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 <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))

const int32_t group1[] = {1, 3, 5, 7, 8, 10, 12};
const int32_t group2[] = {4, 6, 9, 11};
const int32_t group3[] = {2};

int32_t in_group(int32_t x)
{
  for (int32_t i = 0; i < ARRAY_SIZE(group1); i++) {
    if (group1[i] == x) return 1;
  }
  for (int32_t i = 0; i < ARRAY_SIZE(group2); i++) {
    if (group2[i] == x) return 2;
  }
  for (int32_t i = 0; i < ARRAY_SIZE(group3); i++) {
    if (group3[i] == x) return 3;
  }
}

int32_t main(void)
{
  int32_t x, y;
  (void)scanf("%d %d", &x, &y);

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

  return 0;
}