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.io.*;
  import java.util.*;
  import java.math.*;
  
  import static java.lang.Long.bitCount;
  import static java.lang.Long.parseLong;
  
  //Make it Divisible by 25
  
  //-00
  //-25
  //-50
  //-75
  
  public class Main {
  
      public static void main(String[] args) throws IOException, NumberFormatException {
  
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  
  
          int t = Integer.parseInt(br.readLine());
          while (t-- > 0) {
  
              long n = Long.parseLong(br.readLine());
         if(n-1 != 0) {
               System.out.println("-" + (n - 1) + " " + (n));
       }else{
              System.out.println(0+" "+1);
         }
      }}
  
  public static long solve(long n,long k){
          if(k==1){
              return 1;
          }
          if(k==0){
              return 0;
          }
          long l=1;
          long m =1000000007;
          long ans = 1;
          while(l*2 <= k){
              ans = (ans*n)%m;
              l = l*2;
          }
          ans = (ans + solve(n,(k-l)))%m;
          return ans;
  }
  
  
  
  
  
  
  
  
  
    // ------------------------------------------swap----------------------------------------------------------------------
  
      static void swap(int arr[],int i,int j)
      {
          int temp=arr[i];
          arr[i]=arr[j];
          arr[j]=temp;
      }
  
  
      //-------------------------------------------seiveOfEratosthenes----------------------------------------------------
  
  
      static boolean prime[];
      static void sieveOfEratosthenes(int n)
      {
          // Create a boolean array
          // "prime[0..n]" and
          // initialize all entries
          // it as true. A value in
          // prime[i] will finally be
          // false if i is Not a
          // prime, else true.
          prime= new boolean[n + 1];
          for (int i = 0; i <= n; i++)
              prime[i] = true;
  
          for (int p = 2; p * p <= n; p++)
          {
              // If prime[p] is not changed, then it is a
              // prime
              if (prime[p] == true)
              {
                  // Update all multiples of p
                  for (int i = p * p; i <= n; i += p)
                      prime[i] = false;
              }
          }
  
          // Print all prime numbers
  //        for (int i = 2; i <= n; i++)
  //        {
  //            if (prime[i] == true)
  //                System.out.print(i + " ");
  //        }
      }
  
  
  
   // ---------------------------------------- power------------------------------------------------------------------
  
  
  
      public static long power(int a , int b) {
          if (b == 0) {
              return 1;
          } else if (b == 1) {
              return a;
  
          } else {
  
              long R = power(a, b / 2);
              if (b % 2 != 0) {
  
  
                  return (((power(a, b / 2))) * a * ((power(a, b / 2))));
              } else {
                  return ((power(a, b / 2))) * ((power(a, b / 2)));
              }
          }
  
      }
  
  
  
      //--------------------------------------lower bound----------------------------------------------------------
  
  
      static int LowerBound(int a[], int x)
      { // x is the target value or key
          int l=-1,r=a.length;
          while(l+1<r) {
              int m=(l+r)>>>1;
              if(a[m]>=x) r=m;
              else l=m;
          }
          return r;
      }
  
     //--------------------------------------------------------------------------------------------------------------
     public static int log2(int x) {
         return (int) (Math.log(x) / Math.log(2));
     }
  }
  
  
  
  
  
  
  