(define (main args) (let* [(n (read)) (vab (vector-tabulate n (^_ (let* [(x (read)) (y (read))] (cons x y))))) (m (read)) (vxy (vector-tabulate m (^_ (let* [(a (read)) (b (read))] (cons a b))))) (vc (make-vector m 0))] (let loop [(i 0) (j 0)] (cond [(= i n) #t] [(= j m) (loop (+ i 1) 0)] [else (let [(a (car (vector-ref vab i))) (b (cdr (vector-ref vab i))) (x (car (vector-ref vxy j))) (y (cdr (vector-ref vxy j)))] (cond [(and (>= a x) (<= b y)) (vector-set! vc j (+ 1 (vector-ref vc j)))]) (loop i (+ j 1)))])) (for-each print (let loop [(i 0) (mx 0) (ls '())] (cond [(= i m) (if (null? ls) '(0) (reverse ls))] [(zero? (vector-ref vc i)) (loop (+ i 1) mx ls)] [(> (vector-ref vc i) mx) (loop (+ i 1) (vector-ref vc i) (list (+ i 1)))] [(= (vector-ref vc i) mx) (loop (+ i 1) mx (cons (+ i 1) ls))] [else (loop (+ i 1) mx ls)])))) 0)