#import algorithm, future, macros, math, sequtils, sets, strutils, tables import algorithm, sugar, macros, math, sequtils, sets, strutils, tables macro unpack(rhs: seq, cnt: static[int]): auto = let t = genSym(); result = quote do:(let `t` = `rhs`;()) if NimMinor <= 17: for i in 0..>=`(n: var int, m: int) = n = n shr m proc `?=`(n: var SomeNumber, m: SomeNumber) = n = max(n, m) proc newSeq2[T](n1, n2: Natural): seq[seq[T]] = newSeqWith(n1, newSeq[T](n2)) proc newSeq3[T](n1, n2, n3: Natural): seq[seq[seq[T]]] = newSeqWith(n1, newSeqWith(n2, newSeq[T](n3))) # -------------------------------------------------- # var Q = input(int) for query in 1 .. Q: var (N, K) = input(int, 2) if K == 1: echo N - 1 else: var sum = 0 for T in 0 .. 100000: sum += K ^ T if sum >= N: echo T break