import math
import sys  # 用于快速读取输入
def main():
    # 第一步:一次性读取所有输入
    # 机考里输入很大时,必须这样读才不超时
    all_input = sys.stdin.read().split()
    # ptr 是一个指针(下标),用来记录我们读到第几个数字了
    # 作用:按顺序从 all_input 里取数字,不用管换行
    ptr = 0
    # 第一个数字:测试用例数 T
    T = int(all_input[ptr])
    ptr += 1  # 指针往后挪一位,准备读下一个数字
    # 循环处理 T 组数据
    for _ in range(T):
        # 读当前组的 n
        n = int(all_input[ptr])
        ptr += 1
        # 读当前组的 m
        m = int(all_input[ptr])
        ptr += 1
        # 核心优化:只循环到 n <= 2
        # 因为 n>2 时只能开根号,n 下降极快,最多循环 5~6 次
        while m > 0 and n > 2:
            # 开根号向上取整
            n = math.ceil(n ** 0.5)
            # 用掉一次操作机会
            m -= 1
        # 剩下的 m 次操作全部是 -1
        # 直接公式计算,不循环
        if m > 0:
            n = n - m
        print(n)
main()