(define (classify ls) (let loop ([a 0] [b 0] [ls ls]) (cond [(null? ls) (values a b)] [(null? (cdr ls)) (values b (+ a (car ls)))] [else (loop (+ a (car ls)) (+ b (cadr ls)) (cddr ls))]))) (define (main args) (let* ([s (read-line)] [ls (map digit->integer (string->list s))]) (receive (o e) (classify ls) (print (cond [(and (zero? (modulo (+ o e) 3)) (zero? (modulo (- e o) 5))) "FizzBuzz"] [(zero? (modulo (+ o e) 3)) "Fizz"] [(zero? (modulo (- e o) 5)) "Buzz"] [else s])))) 0)