(defvar *prog-input*) (let ((ui (read-line))) (if (equal ui "") (setq *prog-input* *standard-input*) (setq *prog-input* (open ui)))) (let ((cal (read-line *prog-input* NIL)) (sums '(0))) (loop until (or (equal cal "end") (not cal)) do (if (equal cal "") (push 0 sums) (push (+ (pop sums) (parse-integer cal)) sums)) (setq cal (read-line *prog-input* NIL))) (setq sums (sort sums #'>)) (print (+ (first sums) (second sums) (third sums)))) (if (not (eq *prog-input* *standard-input*)) (close *prog-input*))