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 sys
  import math
  import itertools
  import functools
  import collections
  import operator
  import fileinput
  import copy
  import string
  
  ORDA = 97  # a
  
  
  def ii(): return int(input())
  
  
  def mi(): return map(int, input().split())
  
  
  def li(): return list(map(int, input().split()))
  
  
  def lcm(a, b): return abs(a * b) // math.gcd(a, b)
  
  
  def revn(n): return str(n)[::-1]
  
  
  def dd(): return collections.defaultdict(int)
  
  
  def ddl(): return collections.defaultdict(list)
  
  
  def sieve(n):
      if n < 2: return list()
      prime = [True for _ in range(n + 1)]
      p = 3
      while p * p <= n:
          if prime[p]:
              for i in range(p * 2, n + 1, p):
                  prime[i] = False
          p += 2
      r = [2]
      for p in range(3, n + 1, 2):
          if prime[p]:
              r.append(p)
      return r
  
  
  def divs(n, start=2):
      r = []
      for i in range(start, int(math.sqrt(n) + 1)):
          if (n % i == 0):
              if (n // i == i):
                  r.append(i)
              else:
                  r.extend([i, n // i])
      return r
  
  
  def divn(n, primes):
      divs_number = 1
      for i in primes:
          if n == 1:
              return divs_number
          t = 1
          while n % i == 0:
              t += 1
              n //= i
          divs_number *= t
  
  
  def prime(n):
      if n == 2: return True
      if n % 2 == 0 or n <= 1: return False
      sqr = int(math.sqrt(n)) + 1
      for d in range(3, sqr, 2):
          if n % d == 0: return False
      return True
  
  
  def convn(number, base):
      new_number = 0
      while number > 0:
          new_number += number % base
          number //= base
      return new_number
  
  
  def cdiv(n, k): return n // k + (n % k != 0)
  
  
  def ispal(s):
      for i in range(len(s) // 2 + 1):
          if s[i] != s[-i - 1]:
              return False
      return True
  
  
  for _ in range(ii()):
      n = ii()
      print(-n + 1, n)
  
  
  
  
  