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.
import java.io.*;
import java.lang.reflect.Array;
import java.util.*;

public class Main {
    static OutWriter out;
    static InReader in;

    public static void main(String args[]) throws IOException {
        in = new InReader();
        out = new OutWriter();
        int n = in.nextInt();
        for (int i = 0; i < n; i++) {
            int a = in.nextInt();
            if (a >= 12) {
                if (a % 4 == 0) {
                    out.println(a / 4);
                }
                if (a % 4 == 1) {
                    out.println((a - 9) / 4 + 1);
                }
                if (a % 4 == 2) {
                    out.println((a - 6) / 4 + 1);
                }
                if (a % 4 == 3) {
                    out.println((a - 6 - 9) / 4 + 2);
                }
            }
            else {
                if(a==1){
                    out.println(-1);
                }
                if(a==2){
                    out.println(-1);
                }
                if(a==3){
                    out.println(-1);
                }
                if(a==4){
                    out.println(1);
                }
                if(a==5){
                    out.println(-1);
                }
                if(a==6){
                    out.println(1);
                }
                if(a==7){
                    out.println(-1);
                }
                if(a==8){
                    out.println(2);
                }
                if(a==9){
                    out.println(1);
                }
                if(a==10){
                    out.println(2);
                }
                if(a==11){
                    out.println(-1);
                }
            }
        }


        out.close();


    }


    static long binpow(long a, long n) {
        if (n == 0) {
            return 1;
        }
        if (n % 2 == 1) {
            return binpow(a, n - 1) * a;
        } else {
            long b = binpow(a, n / 2);
            return b * b;
        }
    }


    static class InReader {
        BufferedReader in;

        InReader(String ProblemName) throws IOException {
            in = new BufferedReader(new FileReader(ProblemName));
        }

        InReader() throws IOException {
            in = new BufferedReader(new InputStreamReader(System.in));
        }

        StringTokenizer tokenizer = new StringTokenizer("");

        void updateTokenizer() throws IOException {
            if (!tokenizer.hasMoreTokens()) {
                String a = in.readLine();
                if (a != null) {
                    tokenizer = new StringTokenizer(a);
                }
            }
        }

        boolean hasNext() throws IOException {
            updateTokenizer();
            return (tokenizer.hasMoreTokens());
        }

        int nextInt() throws IOException {
            updateTokenizer();

            return Integer.parseInt(tokenizer.nextToken());
        }


        String next() throws IOException {
            updateTokenizer();
            return tokenizer.nextToken();
        }
    }

    static class OutWriter {
        PrintWriter out;

        OutWriter(String Problemname) throws IOException {
            out = new PrintWriter(new FileWriter(Problemname));
        }

        StringBuilder cout = new StringBuilder();

        OutWriter() {
            out = new PrintWriter(System.out);
        }

        public <T> void print(T a) {
            cout.append(a);
        }

        public <T> void println(T a) {
            cout.append(a);
            cout.append("\n");
        }


        void close() {
            out.print(cout.toString());
            out.close();
        }

        String close1() {
            return (cout.toString());
        }
    }
}