#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long INFF = 0x3f3f3f3f3f3f3f3fll;
const long long M = 1e9 + 7;
const long long maxn = 2e5 + 7;
const double eps = 0.00000001;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
template <typename T>
inline T abs(T a) {
  return a > 0 ? a : -a;
}
template <typename T>
inline T powMM(T a, T b) {
  T ret = 1;
  for (; b; b >>= 1ll, a = a * a % M)
    if (b & 1) ret = 1ll * ret * a % M;
  return ret;
}
int n, m, ans;
int a[maxn];
int main() {
  int q;
  scanf("%d", &q);
  a[1] = -1;
  a[2] = -1;
  a[3] = -1;
  a[4] = 1;
  a[5] = -1;
  a[6] = 1;
  a[7] = -1;
  a[8] = 2;
  a[9] = 1;
  a[10] = 2;
  a[11] = -1;
  a[12] = 3;
  a[13] = 2;
  while (q--) {
    scanf("%d", &n);
    if (n < 13)
      printf("%d\n", a[n]);
    else {
      if (n % 4 == 0) printf("%d\n", n / 4);
      if (n % 4 == 1) printf("%d\n", (n - 9) / 4 + 1);
      if (n % 4 == 2) printf("%d\n", (n - 2) / 4);
      if (n % 4 == 3) printf("%d\n", (n - 9 - 2) / 4 + 1);
    }
  }
}

### Prompt

Please formulate a Cpp solution to the following problem:

You are given several queries. In the i-th query you are given a single positive integer ni. You are to represent ni as a sum of maximum possible number of composite summands and print this maximum number, or print -1, if there are no such splittings.

An integer greater than 1 is composite, if it is not prime, i.e. if it has positive divisors not equal to 1 and the integer itself.

Input

The first line contains single integer q (1 ≤ q ≤ 105) — the number of queries.

q lines follow. The (i + 1)-th line contains single integer ni (1 ≤ ni ≤ 109) — the i-th query.

Output

For each query print the maximum possible number of summands in a valid splitting to composite summands, or -1, if there are no such splittings.

Examples

Input

1
12


Output

3


Input

2
6
8


Output

1
2


Input

3
1
2
3


Output

-1
-1
-1

Note

12 = 4 + 4 + 4 = 4 + 8 = 6 + 6 = 12, but the first splitting has the maximum possible number of summands.

8 = 4 + 4, 6 can't be split into several composite summands.

1, 2, 3 are less than any composite number, so they do not have valid splittings.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long INFF = 0x3f3f3f3f3f3f3f3fll;
const long long M = 1e9 + 7;
const long long maxn = 2e5 + 7;
const double eps = 0.00000001;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
template <typename T>
inline T abs(T a) {
  return a > 0 ? a : -a;
}
template <typename T>
inline T powMM(T a, T b) {
  T ret = 1;
  for (; b; b >>= 1ll, a = a * a % M)
    if (b & 1) ret = 1ll * ret * a % M;
  return ret;
}
int n, m, ans;
int a[maxn];
int main() {
  int q;
  scanf("%d", &q);
  a[1] = -1;
  a[2] = -1;
  a[3] = -1;
  a[4] = 1;
  a[5] = -1;
  a[6] = 1;
  a[7] = -1;
  a[8] = 2;
  a[9] = 1;
  a[10] = 2;
  a[11] = -1;
  a[12] = 3;
  a[13] = 2;
  while (q--) {
    scanf("%d", &n);
    if (n < 13)
      printf("%d\n", a[n]);
    else {
      if (n % 4 == 0) printf("%d\n", n / 4);
      if (n % 4 == 1) printf("%d\n", (n - 9) / 4 + 1);
      if (n % 4 == 2) printf("%d\n", (n - 2) / 4);
      if (n % 4 == 3) printf("%d\n", (n - 9 - 2) / 4 + 1);
    }
  }
}

```