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 math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time, functools, copy
  inf = float('inf')
  mod = 10**9+7
  def LI(): return [int(x) for x in sys.stdin.readline().split()]
  def LF(): return [float(x) for x in sys.stdin.readline().split()]
  def I(): return int(sys.stdin.readline())
  def F(): return float(sys.stdin.readline())
  def S(): return input()
  def LS(): return input().split()
  def endl(): return print('\n')
  def lcm(a,b): return (a*b) // fractions.gcd(a,b)
  def grayCode (n): return n ^ (n >> 1);
  sys.setrecursionlimit(200000)    # adjust numbers
  graph = collections.defaultdict(list)
  grid = []
  visited = set()
  ways = ["D","U","R","L"]
  dx =   [1,-1,0,0]
  dy =   [0,0,1,-1]
  def initGraph(m):
      for _ in range(m):
          u,v = LI()
          graph[u-1].append(v-1)
          graph[v-1].append(u-1)
  def initGraphW(m):
      for _ in range(m):
          a,b,c = LI()
          graph[a-1].append((b-1,c))
          graph[b-1].append((a-1,c))
  def initGrid(h,w):
      for i in range(h):
          grid.append(list(S()))
  ################### Main (Author - 9th) ###################
  
  for _ in range(I()):
      n = I()
      if n == 1:
          print(0,1)
      elif n == 2:
          print(-1,2)
      else:
          print(-(n-1),n)
              