(defparameter *sample-in* '((4 1 4 2 3)
				(8 1 6 -1 8 9 5 2 7)))

(defparameter *challenge-in* '((4 1 4 2 3)
				   (5 1 4 2 -1 6)
				   (4 19 22 24 21)
				   (4 19 22 24 25)
				   (4 2 -1 0 2)))

(defun jolly-jumper-p (jolly-list)
  (let ((len (1- (car jolly-list)))
	    (jolly-list (cdr jolly-list)))
	(search (loop for i below len collecting (1+ i))
		(sort (remove-duplicates (butlast
					  (loop for (x y) on jolly-list collecting
					       (abs (- x (or y 0))))))
		      #'<))))

(dolist (in (append *sample-in* *challenge-in*))
  (format t "~{~a ~}:~:[ Not~;~] Jolly~%" in (jolly-jumper-p in)))