description: Theofanis has a riddle for you and if you manage to solve it, he will give you a Cypriot snack halloumi for free (Cypriot cheese).
  
  You are given an integer n. You need to find two integers l and r such that -10^{18} ≤ l < r ≤ 10^{18} and l + (l + 1) + … + (r - 1) + r = n.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^4) — the number of test cases.
  
  The first and only line of each test case contains a single integer n (1 ≤ n ≤ 10^{18}).
  
  Output
  
  For each test case, print the two integers l and r such that -10^{18} ≤ l < r ≤ 10^{18} and l + (l + 1) + … + (r - 1) + r = n. 
  
  It can be proven that an answer always exists. If there are multiple answers, print any.
  
  Example
  
  Input
  
  
  7
  1
  2
  3
  6
  100
  25
  3000000000000
  
  
  Output
  
  
  0 1
  -1 2 
  1 2 
  1 3 
  18 22
  -2 7
  999999999999 1000000000001
  
  Note
  
  In the first test case, 0 + 1 = 1.
  
  In the second test case, (-1) + 0 + 1 + 2 = 2.
  
  In the fourth test case, 1 + 2 + 3 = 6.
  
  In the fifth test case, 18 + 19 + 20 + 21 + 22 = 100.
  
  In the sixth test case, (-2) + (-1) + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 = 25.
solution: # import collections
  # import random
  # import math
  import itertools
  # import math
  # mport math
  from collections import defaultdict
  import itertools
  # from sys import stdin, stdout
  import math
  import sys
  
  import bisect
  # import operator
  # from decimal import Decimal
  
  # sys.setrecursionlimit(10**6)
  
  p2D = lambda x: print(*x, sep="\n")
  def II(): return int(sys.stdin.buffer.readline())
  def MI(): return map(int, sys.stdin.buffer.readline().split())
  def LI(): return list(map(int, sys.stdin.buffer.readline().split()))
  def LLI(rows_number): return [LI() for _ in range(rows_number)]
  def BI(): return sys.stdin.buffer.readline().rstrip()
  def SI(): return sys.stdin.buffer.readline().rstrip().decode()
  def li(): return [int(i) for i in input().split()]
  def lli(rows): return [li() for _ in range(rows)]
  def si(): return input()
  def ii(): return int(input())
  def ins(): return input().split()
  
  
  
  def solve():
      n = II()
      return str(-(n-1))+ ' ' + str(n)
  
  
  
  
  
  
  def main():
      #print('finish '+ str(solve()), flush=True)
      for _ in range(II()):
          sys.stdout.write(str(solve()) + "\n")
      #sys.exit(0)
      #print(solve())
  
      #     z += str(ans) + '\n'
      # print(len(ans), ' '.join(map(str, ans)), sep='\n')
      # stdout.write(z)
  
  
  # for interactive problems
  # print("? {} {}".format(l,m), flush=True)
  # or print this after each print statement
  # sys.stdout.flush()
  
  
  if __name__ == "__main__":
      main()