(define (get-max-weight v k) (let loop ([i k]) (cond [(= 1 (vector-ref v i)) i] [else (loop (- i 1))]))) (define (set-weight v k x) (let loop ([i k]) (cond [(< i 0) #t] [else (if (and (= 1 (vector-ref v i)) (>= k (+ i x))) (vector-set! v (+ i x) 1)) (loop (- i 1))]))) (define (main args) (let* ([n (read)] [k (read)] [v (make-vector (+ k 1) 0)]) (vector-set! v 0 1) (let loop ([c n]) (cond [(zero? c) #t] [else (set-weight v k (read)) (loop (- c 1))])) (print (get-max-weight v k))) 0)