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 Common Lisp (SBCL 1.1.14) (judge verdict: Runtime Error)

(defmacro defsolver (name vars &body body)
  `(defun ,name ()
     (let (,@(mapcar #'list
		    vars
		    (mapcar (constantly '(read))
			    vars)))
       ,@body)))

(defun check (x y)
  (let* ((g1 '(1 3 5 7 8 10 12))
	 (g2 '(4 6 9 11))
	 (h1 (member x g1 :test #'equal))
	 (h2 (member y g1 :test #'equal))
	 (h3 (member x g2 :test #'equal))
	 (h4 (member y g2 :test #'equal)))
    (format t "~a ~a ~a ~a~%" h1 h2 h3 h4)
    (or (and h1 h2) (and h3 h4))))

(defsolver prob-a (x y)
  (format t "~:[No~;Yes~]~a"
	  (or (= x y) (check x y))))

(prob-a)