Problem: A Pythagorean triple is a triple of integer numbers (a, b, c) such that it is possible to form a right triangle with the lengths of the first cathetus, the second cathetus and the hypotenuse equal to a, b and c, respectively. An example of the Pythagorean triple is (3, 4, 5).

Vasya studies the properties of right triangles, and he uses a formula that determines if some triple of integers is Pythagorean. Unfortunately, he has forgotten the exact formula; he remembers only that the formula was some equation with squares. So, he came up with the following formula: c = a^2 - b.

Obviously, this is not the right formula to check if a triple of numbers is Pythagorean. But, to Vasya's surprise, it actually worked on the triple (3, 4, 5): 5 = 3^2 - 4, so, according to Vasya's formula, it is a Pythagorean triple.

When Vasya found the right formula (and understood that his formula is wrong), he wondered: how many are there triples of integers (a, b, c) with 1 ≤ a ≤ b ≤ c ≤ n such that they are Pythagorean both according to his formula and the real definition? He asked you to count these triples.

Input

The first line contains one integer t (1 ≤ t ≤ 10^4) — the number of test cases.

Each test case consists of one line containing one integer n (1 ≤ n ≤ 10^9).

Output

For each test case, print one integer — the number of triples of integers (a, b, c) with 1 ≤ a ≤ b ≤ c ≤ n such that they are Pythagorean according both to the real definition and to the formula Vasya came up with.

Example

Input


3
3
6
9


Output


0
1
1

Note

The only Pythagorean triple satisfying c = a^2 - b with 1 ≤ a ≤ b ≤ c ≤ 9 is (3, 4, 5); that's why the answer for n = 3 is 0, and the answer for n = 6 (and for n = 9) is 1.

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

/**
 * @author Peter Li
 * @version 02/15/2021
 */
public class Pythagorean {
    private static long a, b, c;
    
    private static void generate(long x) {
        a = x;
        b = (a * a - 1) / 2;
        c = b + 1;
    }
    
    private static void generate2(long n) {
        for (int i = 3; i <= n; i += 2) {
            generate(i);
            if (c > n) {
                break;
            }
            list.add(c);
        }
    }
    
    static ArrayList<Long> list = new ArrayList<>();
    
    public static void main(String[] args) throws IOException {
        int t = ni();
        generate2(1000000001);
        while (t-- > 0) {
            long n = ni();
            int index = Collections.binarySearch(list, n);
            if (index >= 0) {
                System.out.println(index + 1);
            } else {
                System.out.println(-index - 1);
            }
        }
    }
    
    private static final String DELIMINATOR = " \n\r\f\t";
    private final static BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1 << 15);
    private static StringTokenizer st = new StringTokenizer("", DELIMINATOR);
    
    private static boolean hasNext() {
        makeStringTokenizerReady();
        return st.hasMoreTokens();
    }
    
    private static void makeStringTokenizerReady() {
        while (!st.hasMoreTokens()) {
            try {
                st = new StringTokenizer(br.readLine(), DELIMINATOR);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    private static String ns() {
        makeStringTokenizerReady();
        return st.nextToken();
    }
    
    private static long nl() {
        return Long.parseLong(ns());
    }
    
    private static int ni() {
        return (int) nl();
    }
    
    private static double nd() {
        return Double.parseDouble(ns());
    }
    
    private static int[] na(int n) {
        int[] ans = new int[n];
        for (int i = 0; i < n; i++) {
            ans[i] = ni();
        }
        return ans;
    }
    
    private static String[] nsa(int n) {
        String[] ans = new String[n];
        for (int i = 0; i < n; i++) {
            ans[i] = ns();
        }
        return ans;
    }
}