T = int(input()) def calc(N): S = N * (N + 1) / 2 return S def greedy(N, S): num = [i for i in range(1, N + 1)] ans = [] s = [] for n in num: s.append(n) if sum(s) == S: for i in range(1, N + 1): if i in s: ans.append(1) else: ans.append(0) return ans if sum(s) > S: pop = [] while s and sum(s) > S: pop.append(s[0]) s = s[1:] if sum(s) == S: for i in range(1, N + 1): if i in s: ans.append(1) else: ans.append(0) return ans if sum(s) < S: diff = S - sum(s) if diff in pop: s.append(diff) for i in range(1, N + 1): if i in s: ans.append(1) else: ans.append(0) return ans return -1 def check(s: str): one = 0 zero = 0 for i in range(len(s)): if s[i] == "0": zero += i + 1 else: one += i + 1 print(one, zero) for _ in range(T): N = int(input()) S = calc(N) # print(N, S) if S % 2 == 1: print(-1) continue S //= 2 ans = greedy(N, S) if ans == -1: print(-1) else: ans = "".join(map(str, ans)) # check(ans) print(ans)