#include<iostream>
using namespace std;
int main(){
	int s[20]={0,1,3,1,2,1,2,1,1,2,1,2,1};
	int a,b;
	cin>>a>>b;
	if(s[a]==s[b]){
		cout<<"Yes"<<endl;
	}
	else{
		cout<<"No"<<endl;
	}
	return 0;
}
### Prompt

Please provide a CPP coded solution to the problem described below:

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.

b4ab979900ed647703389d4349eb84ee.png

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`.

Examples

Input

1 3


Output

Yes


Input

2 4


Output

No

### Response

```cpp
#include<iostream>
using namespace std;
int main(){
	int s[20]={0,1,3,1,2,1,2,1,1,2,1,2,1};
	int a,b;
	cin>>a>>b;
	if(s[a]==s[b]){
		cout<<"Yes"<<endl;
	}
	else{
		cout<<"No"<<endl;
	}
	return 0;
}
```