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 Java7 (OpenJDK 1.7.0) (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.InputStreamReader;

class Main{

	public static boolean solve(int[] g,int x){
		int left = 0;
		int right = g.length;
		while(left < right){
			int mid = (left + right) / 2;
			if(g[mid] == x){
				return true;
			}else if(g[mid] > x){
				right = mid;
			}else{
				left = mid + 1;
			}
		}
		return false;
	}

	public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");
        int x = Integer.parseInt(input[0]);
        int y = Integer.parseInt(input[1]);
        int[] g1 = {1,3,5,7,8,10,12};
        int[] g2 = {4,6,9,11};
        int[] g3 = {2};
        if((solve(g1,x) && solve(g1,y)) || (solve(g2,x) && solve(g2,y))||(solve(g3,x) && solve(g3,y))){
        	System.out.println("Yes");
        }else{
        	System.out.println("No");
        }

    }

}