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()