#!/usr/bin/env gosh (define (parse-input) (let ((n (read (open-input-string (read-line))))) (define (iter i acc) (if (= i 0) acc (let ((lst (read (open-input-string (string-append "(" (read-line) ")"))))) (iter (- i 1) (cons lst acc))))) (iter n '()))) (define (nyanpass lst) (define (nyanpass-pos lst acc index) (if (null? lst) acc (if (or (eq? 'nyanpass (car lst)) (eq? '- (car lst))) (nyanpass-pos (cdr lst) (cons index acc) (+ index 1)) (nyanpass-pos (cdr lst) acc (+ index 1))))) (define (renchon? n lst) (if (null? lst) #t (if (and (not (eq? 'nyanpass (list-ref (car lst) n))) (not (eq? '- (list-ref (car lst) n)))) #f (renchon? n (cdr lst))))) (define (iter maybe-renchon acc) (if (null? maybe-renchon) acc (if (renchon? (car maybe-renchon) lst) (iter (cdr maybe-renchon) (cons (+ (car maybe-renchon) 1) acc)) (iter (cdr maybe-renchon) acc)))) (iter (nyanpass-pos (car lst) '() 0) '())) (let* ((ren-list (nyanpass (parse-input)))) (if (= (length ren-list) 1) (display (car ren-list)) (display -1)) (newline))