from random import randint def answer(n: int): ans = 9 * n for d in range(1, 9): str_n = [ni for ni in str(n)] is_upper = False for i in range(len(str_n)): if d < int(str_n[i]) or is_upper: str_n[i] = str(d) is_upper = True v = int("".join(str_n), base=d + 1) ans -= v return ans def solve(): N = int(input()) while True: L = randint(1, min(10**9, N)) ans_L = answer(L - 1) ok, ng = L, 10**18 + 1 while (ng - ok) > 1: mid = (ok + ng) // 2 if answer(mid) - ans_L <= N: ok = mid else: ng = mid if answer(ok) - ans_L == N: print(L, ok) return if __name__ == "__main__": T = int(input()) for _ in range(T): solve()