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
class UnionFind():
	def __init__(self, n):
		self.par = [i for i in range(n + 1)]
		self.rank= [1] * (n + 1)

	def root(self, x):
		return x if self.par[x] == x else self.root(self.par[x])
	
	def same(self, x, y):
		return self.root(x) == self.root(y)

	def unite(self, x, y):
		rx = self.root(x)
		ry = self.root(y)
		if rx == ry:
			return
		if self.rank[rx] < self.rank[ry]:
			self.par[rx] = ry
		else:
			self.par[ry] = rx
			if self.rank[rx] == self.rank[ry]:
				self.rank[rx] += 1
		
			
			
x, y = map(int, raw_input().split())
g1 = [1, 3, 5, 7, 8, 10, 12]
g2 = [4, 6, 9, 11]
g3 = [2]
uf = UnionFind(12)
for i in g1:
	uf.unite(g1[0], i)
for i in g2:
	uf.unite(g2[0], i)
for i in g3:
	uf.unite(g3[0], i)

print "Yes" if uf.same(x, y) else "No"

