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.*;
  import java.io.*;
  import java.math.*;
  import java.util.LinkedList;
  public class Main
  {
      static class Pair{
          int i,j;
          String dir;
          Pair(int p,int q,String r)
          {
              i=p;
              j=q;
              dir=r;
          }
      }
      
    
    public static void process()throws IOException
    {
        long n=nl();
        pn((-1)*(n-1)+" "+n);
      }
  
      
      static AnotherReader sc;
      static PrintWriter out;
      public static void main(String[]args)throws IOException
      {
          out = new PrintWriter(System.out);
          sc=new AnotherReader();
          boolean oj = true;
  
             //PrintWriter out=new PrintWriter("output");
          //oj = System.getProperty("ONLINE_JUDGE") != null;
          //if(!oj) sc=new AnotherReader(100);
      
      int T=ni(); while(T-->0)
        process();
   //   int i=1;
   //      int T=ni();
   // while(T-->0)
   //     {
   //      p("Case #"+i+": ");
   //            process();
   //            i++;
   //    }
          long s = System.currentTimeMillis();
        
          out.flush();
          if(!oj)
              System.out.println(System.currentTimeMillis()-s+"ms");
          System.out.close();  
      }
      static void sort(long arr[],int n)
      {
      shuffle(arr,n);
      Arrays.sort(arr);
      }
      static void shuffle(long arr[],int n)
      {
          Random r=new Random();
          for(int i=0;i<n;i++)
          {
            long temp=arr[i];
            int pos=i+r.nextInt(n-i);
            arr[i]=arr[pos];
            arr[pos]=temp;
          }
      }
   
      static void pn(Object o){out.println(o);}
      static void p(Object o){out.print(o);}
      static void pni(Object o){out.println(o);System.out.flush();}
      static int ni()throws IOException{return sc.nextInt();}
      static long nl()throws IOException{return sc.nextLong();}
      static double nd()throws IOException{return sc.nextDouble();}
      static String nln()throws IOException{return sc.nextLine();}
      static String nn()throws IOException{return sc.next();}
      static long gcd(long a, long b)throws IOException{return (b==0)?a:gcd(b,a%b);}
      static int gcd(int a, int b)throws IOException{return (b==0)?a:gcd(b,a%b);}
      static long bit(long n)throws IOException{return (n==0)?0:(1+bit(n&(n-1)));}
      static int[] iarr(int N)throws IOException{int[]ARR=new int[N];for(int i=0;i<N;i++){ARR[i]=ni();}return ARR;}
      static long[] larr(int N)throws IOException{long[]ARR=new long[N];for(int i=0;i<N;i++){ARR[i]=nl();}return ARR;}
      static boolean multipleTC=false;
              
   
  /////////////////////////////////////////////////////////////////////////////////////////////////////////
      static class AnotherReader{BufferedReader br; StringTokenizer st;
      AnotherReader()throws FileNotFoundException{
      br=new BufferedReader(new InputStreamReader(System.in));}
      AnotherReader(int a)throws FileNotFoundException{
      br = new BufferedReader(new FileReader("input.txt"));}
      String next()throws IOException{
      while (st == null || !st.hasMoreElements()) {try{
      st = new StringTokenizer(br.readLine());}
      catch (IOException  e){ e.printStackTrace(); }}
      return st.nextToken(); } int nextInt() throws IOException{
      return Integer.parseInt(next());}
      long nextLong() throws IOException
      {return Long.parseLong(next());}
      double nextDouble()throws IOException { return Double.parseDouble(next()); }
      String nextLine() throws IOException{ String str = ""; try{
      str = br.readLine();} catch (IOException e){
      e.printStackTrace();} return str;}}
   
      
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  }