def nasu(s): k = s ** (1 / 2) return int(k) def main(): N = int(input()) b = bin(N)[2:] c = b[:len(b) // 2] k = -(-len(b) // 2) if c == "": c = "0" mi = int(c, 2) << k ma = (int(c, 2) + 1) << k s = mi while s < ma: t = nasu(s) nx = (t + 1) ** 2 m = N ^ t if s <= m < nx: print(m) break s = nx else: print(-1) T = int(input()) for _ in range(T): main()