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.*;
  import java.util.regex.*;
  
  public class a{
    static final int mod = 1000000007;
  
    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
  
    static void parr(int []arr) throws Exception{
      for(int i : arr) System.out.print(i+" ");
      System.out.println();
    }
    static void parr(long []arr) throws Exception{
      for(long i : arr) System.out.print(i+" ");
      System.out.println();
    }
    static void parr(double []arr) throws Exception{
      for(double i : arr) System.out.print(i+" ");
      System.out.println();
    }
    static void parr(float []arr) throws Exception{
      for(float i : arr) System.out.print(i+" ");
      System.out.println();
    }
  
    static int inpi() throws Exception{
      return (int)(Integer.parseInt(br.readLine()));
    }
    static long inpl() throws Exception{
      return (long)Long.parseLong(br.readLine());
    }
    static double inpd() throws Exception{
      return (double)Double.parseDouble(br.readLine());
    }
    static float inpf() throws Exception{
      return (float)Float.parseFloat(br.readLine());
    }
  
    static int[] inpai() throws Exception{
      String ar[] = br.readLine().split(" ");
      int n = ar.length;
      int arr[] = new int[n];
      int k=0;
      for(String i : ar) arr[k++] = (int)(Integer.parseInt(i));
      return arr;
    }
  
    static double[] inpad() throws Exception{
      String ar[] = br.readLine().split(" ");
      int n = ar.length;
      double arr[] = new double[n];
      int k=0;
      for(String i : ar) arr[k++] = (double)(Double.parseDouble(i));
      return arr;
    }
  
    static float[] inpaf() throws Exception{
      String ar[] = br.readLine().split(" ");
            int n = ar.length;
      float arr[] = new float[n];
      int k=0;
      for(String i : ar) arr[k++] = (float)(Float.parseFloat(i));
      return arr;
    }
  
    static long[] inpal() throws Exception{
      String ar[] = br.readLine().split(" ");
            int n = ar.length;
      long arr[] = new long[n];
      int k=0;
      for(String i : ar) arr[k++] = (long)(Long.parseLong(i));
      return arr;
    }
  ///////
  
  ///////////
  static void factors(int num){
  
    int sqrt = (int)Math.sqrt(num);
    lis.add(num);
    for(int i=2;i<=sqrt;i++){
      if(num%i==0){
        lis.add(i);
        if(num/i!=i) lis.add(num/i);
      }
    }
  }
  /////////////
  static int gcd (int a,int b){
  if(b==0) return a;
  return gcd(b,a%b);
  }
  //////
  
  static class sort implements Comparator<node>{
  public int compare(node a,node b){
      return (int)(b.val-a.val);
    }
  }
  static class sort2 implements Comparator<node>{
  public int compare(node a,node b){
      return (int)(b.val-a.val);
    }
  }
  
  static class node{
      int val;
      int ind;
  
      node(int val,int ind){
        this.val = val;
        this.ind = ind;
      }
  }
  //////
  
  
  static void solve(int testcase) throws Exception{
     long n = inpl();
  
     long temp = 1-n;
     System.out.println(temp+" "+n);
   }
  //////
  
  static boolean vis[];
  static Map<Character,Integer> map;
  static ArrayList<Integer> arl[];
  static Set<Integer> set;
  static int n,m,k,x,y;
  static ArrayList<Integer> lis;
  static String str;
  static int arr[];
  
  /////
    public static void main(String[] args)throws Exception{
      int t=1;
      t = inpi();
  
  
      for(int z=1;z<=t;z++){
          solve(z);
      }
  //////
    }
  }
  