(format t "~{~a~%~}"
		(loop for (sum . list) = '(1 1)
		      then (if (<= sum 2014)
				       (list* (+ sum (car list) 1) (1+ (car list)) list)
				       (cons (- sum (car (last list))) (nbutlast list)))
		      if (= sum 2014) collect (reverse list)
		      until (equal list '(2014))))