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: from collections import Counter, defaultdict,deque
  from sys import stdin,stdout
  from heapq import heapify,heappop,heappush
  import io , os , sys
  #input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline
  input = stdin.readline
  from collections import OrderedDict
  from bisect import bisect_left , bisect_right
   
   
   
  mod = 10 **9 + 7
   
  def mapinput():
      return  map(int, input().split())
   
  def listinput():
      return [int(i) for i in input().split()]
   
  def intinput():
      return int(input())
   
  def strinput():
      return input().strip()
   
  def SieveOfEratosthenes(n):
      prime = [True for i in range(n + 1)]
      p = 2
      while (p * p <= n):
          if (prime[p] == True):
              for i in range(p * 2, n + 1, p):
                  prime[i] = False
          p += 1
      prime[0]= False
      prime[1]= False
      ans = []
      for p in range(n + 1):
          if prime[p]:
              ans.append(p)
      return ans
   
  def writ(ss):
      stdout.write(str(ss) + "\n")
   
  def mult(a , b, mod):
      return ((a% mod) * (b%mod) ) % mod
   
  # def binn(arr , val):
  #     low = 0
  #     high = len(arr) -1 
  #     while low<= high:
          
  #         mid = (low + high) >> 1 
  #         #print(low , high , mid , arr[mid] , val)
  #         if arr[mid] == val:
  #             return [mid]
  #         elif arr[mid] < val:
  #             low = mid + 1 
  #         else:
  #             high = mid -1
          
  #         aa = [low , high]
  #         for i in range(-2,2):
  #             if 0 <= mid + i < len(arr) :
  #                 aa.append(mid+i)
  #         aa = set(aa)
  #         return aa
   
   
  for test in range(intinput()):
      def solve():
          n = intinput()
          return (-n +1, n )
      print(*solve())
          