#include <bits/stdc++.h>
using namespace std;
double EPS = 1e-9;
int INF = 1000000005;
long long INFF = 1000000000000000005LL;
double PI = acos(-1);
int dirx[8] = {-1, 0, 0, 1, -1, -1, 1, 1};
int diry[8] = {0, 1, -1, 0, -1, 1, -1, 1};
int INFH = 2e9 + 10;
int binarySearch(int arr[], int l, int r, int x) {
  if (r >= l) {
    int mid = l + (r - l) / 2;
    if (arr[mid] == x) return mid;
    if (arr[mid] > x) return binarySearch(arr, l, mid - 1, x);
    return binarySearch(arr, mid + 1, r, x);
  }
  return -1;
}
int binexp(long long a, long long b) {
  if (b == 0) return 1;
  long long res = binexp(a, b / 2);
  if (b & 1)
    return a * res * res;
  else
    return res * res;
}
int factorial(int i) { return i ? factorial(i - 1) * i : 1; }
bool prime(long long n) {
  if (n <= 2) return false;
  for (long long i = 2; i * i <= n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
int di(long long n) {
  long long sum = 0;
  while (n > 0) {
    n /= 10;
    sum++;
  }
  return sum;
}
long long M = 1e9 + 7;
int smallest_divisor(int n) {
  int i;
  for (i = 2; i <= sqrt(n); ++i) {
    if (n % i == 0) {
      return i;
    }
  }
  return n;
}
void solved() {
  long long n;
  cin >> n;
  cout << -(n - 1) << " " << n << endl;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    solved();
  }
}

### Prompt

Please formulate a cpp solution to the following problem:

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.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
double EPS = 1e-9;
int INF = 1000000005;
long long INFF = 1000000000000000005LL;
double PI = acos(-1);
int dirx[8] = {-1, 0, 0, 1, -1, -1, 1, 1};
int diry[8] = {0, 1, -1, 0, -1, 1, -1, 1};
int INFH = 2e9 + 10;
int binarySearch(int arr[], int l, int r, int x) {
  if (r >= l) {
    int mid = l + (r - l) / 2;
    if (arr[mid] == x) return mid;
    if (arr[mid] > x) return binarySearch(arr, l, mid - 1, x);
    return binarySearch(arr, mid + 1, r, x);
  }
  return -1;
}
int binexp(long long a, long long b) {
  if (b == 0) return 1;
  long long res = binexp(a, b / 2);
  if (b & 1)
    return a * res * res;
  else
    return res * res;
}
int factorial(int i) { return i ? factorial(i - 1) * i : 1; }
bool prime(long long n) {
  if (n <= 2) return false;
  for (long long i = 2; i * i <= n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
int di(long long n) {
  long long sum = 0;
  while (n > 0) {
    n /= 10;
    sum++;
  }
  return sum;
}
long long M = 1e9 + 7;
int smallest_divisor(int n) {
  int i;
  for (i = 2; i <= sqrt(n); ++i) {
    if (n % i == 0) {
      return i;
    }
  }
  return n;
}
void solved() {
  long long n;
  cin >> n;
  cout << -(n - 1) << " " << n << endl;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    solved();
  }
}

```