(define (read-list q) (cond [(zero? q) '()] [else (let* ([n (read)] [k (read)]) (cons (list n k) (read-list (- q 1))))])) (define (solve nk) (let ([n (car nk)] [k (cadr nk)]) (cond [(= k 1) (- n 1)] [else (- (inexact->exact (ceiling (log (+ 1 (* n (- k 1))) k))) 1)]))) (define (main args) (let* ([q (read)] [lnk (read-list q)]) (for-each print (map solve lnk))) 0)