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 static java.lang.Math.max;
  import static java.lang.Math.min;
  import static java.lang.Math.abs;
  import static java.lang.System.out;
  import java.util.*;
  import java.io.*;
  import java.math.*;
  import java.util.Arrays;
  import java.util.Collections;
  
  public class a747
  {
  	public static void main(String args[]) throws IOException
  	{
  	    // long start = System.currentTimeMillis();		
  		int u = 0;
  		BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
  		// System.out.println("Enter t");
  		int t = Integer.parseInt(br.readLine());
  		do
  		{
  			
  			// System.out.println("Enter n");
  			long n = Long.parseLong(br.readLine());
  			if(n%2 ==1)
  			{
  				System.out.println((n-1)/2 +" "+(n+1)/2);
  			}
  			else
  			{
  				long k = n;
  				int a = 1;
  				while(k%2 == 0)
  				{
                     
                     a++;
                     k = k/2;
  				}
  				long alpha =(long)Math.pow(2,a) -1;
  				long d = n/(long)Math.pow(2,a-1);
  				long l = (d - alpha)/2;
  				long r = l + alpha;
  
  
  			    System.out.println(l+" "+r);
  			}
  
  			
  			
  			
  
  
  
              
              u++;
              
          }
          while(u<t);
          // long end = System.currentTimeMillis();
          // System.out.println("time taken is "+ (end - start) + "ms");
  
  	}
  }