; your code goes here

(defclass a () ())
(defclass aa (a) ())
(defclass aaa (aa) ())

(defclass b () ())
(defclass bb (b) ())

(defgeneric m (x y))

(defmethod m ((x a)  (y b))  1)
(defmethod m ((x a)  (y bb)) 2)
(defmethod m ((x aa) (y b))  3)

(format t "~a ~a~%"
  (m (make-instance 'aa) (make-instance 'bb))
  (m (make-instance 'aa) (make-instance 'b)))
(format t "~a ~a~%"
  (m (make-instance 'aaa) (make-instance 'bb))
  (m (make-instance 'a)   (make-instance 'bb)))