(define (solve n k vx va) (- (let loop ([r (+ (vector-ref vx (- k 1)) (vector-ref va (- k 1)))] [i k]) (cond [(= i n) (- n 1)] [(< r (vector-ref vx i)) (- i 1)] [else (loop (max r (+ (vector-ref vx i) (vector-ref va i))) (+ i 1))])) (let loop ([r (- (vector-ref vx (- k 1)) (vector-ref va (- k 1)))] [i (- k 2)]) (cond [(= i -1) 0] [(> r (vector-ref vx i)) (+ i 1)] [else (loop (min r (- (vector-ref vx i) (vector-ref va i))) (- i 1))])) -1)) (define (main args) (let* ([n (read)] [k (read)] [vx (vector-tabulate n (^_ (read)))] [va (vector-tabulate n (^_ (read)))]) (print (solve n k vx va))) 0)