# -*- coding: utf-8 -*-

import math
import sys


def solve_test() -> None:
    """Rozwiąż pojedynczy przypadek testowy."""
    word: str
    task_a: int
    task_b: int
    # Uwaga: sys.stdin.readline() nie przejmuje się kodowaniem znaków,
    # przez co może być nawet kilka razy szybsze, niż input().
    task_a, task_b = (int(word) for word in sys.stdin.readline().split())
    ans_p: int
    ans_q: int
    if task_a % (task_b + 1) == 0:
        # Przypadek I: (p - 1) jest dzielnikiem (q - 1)
        ans_p = task_b + 1
        ans_q = task_a // ans_p
        if ans_p > ans_q:
            ans_p, ans_q = ans_q, ans_p
    else:
        # Przypadek II: znamy iloczyn i sumę zaginionych liczb
        pq_sum: int = task_a % task_b + 1
        pq_diff: int = int(math.sqrt(pq_sum * pq_sum - 4 * task_a) + 0.5)
        ans_p = (pq_sum - pq_diff) // 2
        ans_q = ans_p + pq_diff
    sys.stdout.write(f'{ans_p} {ans_q}\n')


def main() -> None:
    """Rozwiąż wszystkie testy."""
    tests: int = int(sys.stdin.readline())  # Liczba testów
    _: int
    for _ in range(tests):
        solve_test()

if __name__ == '__main__':
    main()
