import bisect def Sieve_of_Eratosthenes(num): number_list = [[i,True] for i in range(0,num+1)] prime_list = [] for i, res in number_list[2:]: if res == True: for j in range(i*i, num+1, i): number_list[j][1] = False if i > num**(1/2): break for num,i in number_list: if num >= 2 and i == True: prime_list.append(num) return prime_list N = 10**14 prime_list = Sieve_of_Eratosthenes(int(N**(1/2)+1)) p_L=[] for i in range(1,len(prime_list)): if prime_list[i] - prime_list[i-1] == 2: p_L.append(prime_list[i-1]*prime_list[i]) T=int(input()) for i in range(T): N=int(input()) idx = bisect.bisect_left(p_L, N) if idx == 0: print(-1) elif idx == len(p_L): print(p_L[idx-1]) else: if p_L[idx] == N: print(N) else: print(p_L[idx-1])