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 java.util.StringTokenizer;
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.StringTokenizer;
  
  public class Test {
      static BufferedReader br;
      static double pre = 1e-9;
      static boolean isPrime[];
  
      public static void main(String[] args) throws IOException {
          // your code goes here
  
          br = new BufferedReader(new InputStreamReader(System.in));
          int t = Integer.parseInt(br.readLine());
          // int t = 1;
          while (t-- > 0) {
              // int n = Integer.parseInt(br.readLine());
              long n = Long.parseLong(br.readLine());
              System.out.println((1 - n) + " " + n);
  
              // int n = Integer.parseInt(br.readLine());
              // int n = Integer.parseInt(st.nextToken());
              // int x = Integer.parseInt(st.nextToken());
  
          }
  
      }
  
      public static boolean[] SieveOfEratosthenes() {
          int n = (int) 1e7 + 7;
          boolean[] ans = new boolean[n];
          Arrays.fill(ans, true);
          ans[0] = false;
          ans[1] = false;
          for (int i = 2; i < n; i++) {
              if (ans[i]) {
                  for (int j = i * i; j < n; j = j + i) {
                      ans[j] = false;
                  }
              }
          }
          return ans;
  
      }
  
      public static long powerMod(long num, long pow, long mod) {
          if (pow == 0 || num == 1)
              return 1;
          if (num == 0 || pow == 1)
              return num;
  
          long ans = powerMod(num, pow / 2, mod) % mod;
  
          ans = (ans * ans) % mod;
  
          if (pow % 2 != 0) {
              ans = (ans * num) % mod;
          }
  
          return ans;
      }
  
      public static long gcd(long a, long b) {
          if (b == 0 || a == b)
              return a;
          if (a == 1 || b == 1)
              return 1;
          return gcd(b, a % b);
  
      }
  
      static class Element implements Comparable<Element> {
          int num;
          int freq;
  
          Element(int num, int freq) {
              this.num = num;
              this.freq = freq;
          }
  
          public int compareTo(Element e) {
              if (this.freq > e.freq) {
                  return 1;
              }
              if (this.freq == e.freq) {
                  return 0;
              }
              return -1;
          }
      }
  
  }
  