''' int():向下取整,直接去掉小数部分。 math.floor():向下取整,取小于或等于该数的最大整数。 math.ceil():向上取整,取大于或等于该数的最小整数。 round():四舍五入到最接近的整数。 math.trunc():向零取整,直接去掉小数部分。 ''' from math import sqrt, ceil while True: try: T = int(input()) for _ in range(T): n, m = map(int,input().split()) while m > 0: if n > 2: n = ceil(sqrt(n)) m -= 1 else: n = n -m m = 0 print(n) except: break