(defun c (lst floor count) (cond ((= floor -1) (1- count)) ((null lst) (1- count)) ((char= (car lst) #\() (c (cdr lst) (1+ floor) (1+ count))) ((char= (car lst) #\)) (c (cdr lst) (1- floor) (1+ count))) (t (1- count)))) (defun solve () (labels ((inner () (let ((count (c (concatenate 'list (read-line)) 0 1))) (format t "~a~%" count) (inner)))) (handler-case (inner) (end-of-file () nil)))) (solve)