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.math.*;
  import java.util.*;
  
  
  // @author : Dinosparton 
  
  public class test {
  	 
  	   static class Pair{ 
  		   long x;
  		   long y;
  		   
  		   Pair(long x,long y){ 
  			   this.x = x;
  			   this.y = y;
  			   
  		   }
  	   }
  	  
  	   static class Sort implements Comparator<Pair>
  	   {
  
  	       @Override
  	       public int compare(Pair a, Pair b)
  	       {
  	           if(a.x!=b.x)
  	           {
  	               return (int)(a.x - b.x);
  	           }
  	           else
  	           {
  	               return (int)(a.y-b.y);
  	           }
  	       }
  	   }
  	   
  	   static class Compare { 
  		   
  		     void compare(Pair arr[], int n) 
  		    { 
  		        // Comparator to sort the pair according to second element 
  		        Arrays.sort(arr, new Comparator<Pair>() { 
  		            @Override public int compare(Pair p1, Pair p2) 
  		            { 
  		            	if(p1.x!=p2.x) {
  		                return (int)(p1.x - p2.x); 
  		            	}
  		            	else { 
  		            		return (int)(p1.y - p2.y);
  		            	}
  		            } 
  		        }); 
  		  
  //		        for (int i = 0; i < n; i++) { 
  //		            System.out.print(arr[i].x + " " + arr[i].y + " "); 
  //		        } 
  //		        System.out.println(); 
  		    } 
  		} 
  	 
  	   static class Scanner {
  	        BufferedReader br;
  	        StringTokenizer st;
  	 
  	        public Scanner()
  	        {
  	            br = new BufferedReader(
  	                new InputStreamReader(System.in));
  	        }
  	 
  	        String next()
  	        {
  	            while (st == null || !st.hasMoreElements()) {
  	                try {
  	                    st = new StringTokenizer(br.readLine());
  	                }
  	                catch (IOException e) {
  	                    e.printStackTrace();
  	                }
  	            }
  	            return st.nextToken();
  	        }
  	 
  	        int nextInt() { return Integer.parseInt(next()); }
  	 
  	        long nextLong() { return Long.parseLong(next()); }
  	 
  	        double nextDouble()
  	        {
  	            return Double.parseDouble(next());
  	        }
  	 
  	        String nextLine()
  	        {
  	            String str = "";
  	            try {
  	                str = br.readLine();
  	            }
  	            catch (IOException e) {
  	                e.printStackTrace();
  	            }
  	            return str;
  	        }
  	    }
  	 
  	   static int row[] = {-1,0,0,1};
  	   static int col[] = {0,-1,1,0};
  	   
  	   static boolean isSafe(int x,int y,int mat[][],int a[][]) {
  		   
  		   if((x>=0 && x<mat.length) && (y>=0 && y<mat[0].length) && mat[x][y] == 0 && a[x][y]%2==0) {
  			   return true;
  		   }
  		   
  		   return false;
  	   }
  	   
  	   static void bfs(int mat[][] , int x , int y,int cnt,int a[][]) {
  		   
  		   mat[x][y] = cnt;
  		   
  		   for(int i=0;i<4;i++) {
  			   
  			   if(isSafe(x+row[i],y+col[i],mat,a)) {
  				   bfs(mat,x+row[i],y+col[i],cnt,a);
  			   }
  		   }
  	   }
  	   public static void main(String args[]) throws Exception { 
  		
  		   
  		   Scanner sc = new Scanner();
  		   StringBuilder res = new StringBuilder();
  		
  		   int tc = sc.nextInt();
  		   
  		   while(tc-->0) { 
  			
  			   long n = sc.nextLong();
  			   res.append(-n+1+" "+n+"\n");
  		   }
  			System.out.println(res);
  		   
  	   }
  }  
  
  
  
  
  