Let's call an array a consisting of n positive (greater than 0) integers beautiful if the following condition is held for every i from 1 to n: either a_i = 1, or at least one of the numbers a_i - 1 and a_i - 2 exists in the array as well.

For example: 

  * the array [5, 3, 1] is beautiful: for a_1, the number a_1 - 2 = 3 exists in the array; for a_2, the number a_2 - 2 = 1 exists in the array; for a_3, the condition a_3 = 1 holds; 
  * the array [1, 2, 2, 2, 2] is beautiful: for a_1, the condition a_1 = 1 holds; for every other number a_i, the number a_i - 1 = 1 exists in the array; 
  * the array [1, 4] is not beautiful: for a_2, neither a_2 - 2 = 2 nor a_2 - 1 = 3 exists in the array, and a_2 ≠ 1; 
  * the array [2] is not beautiful: for a_1, neither a_1 - 1 = 1 nor a_1 - 2 = 0 exists in the array, and a_1 ≠ 1; 
  * the array [2, 1, 3] is beautiful: for a_1, the number a_1 - 1 = 1 exists in the array; for a_2, the condition a_2 = 1 holds; for a_3, the number a_3 - 2 = 1 exists in the array. 



You are given a positive integer s. Find the minimum possible size of a beautiful array with the sum of elements equal to s.

Input

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

Then t lines follow, the i-th line contains one integer s (1 ≤ s ≤ 5000) for the i-th test case.

Output

Print t integers, the i-th integer should be the answer for the i-th testcase: the minimum possible size of a beautiful array with the sum of elements equal to s.

Example

Input


4
1
8
7
42


Output


1
3
3
7

Note

Consider the example test:

  1. in the first test case, the array [1] meets all conditions; 
  2. in the second test case, the array [3, 4, 1] meets all conditions; 
  3. in the third test case, the array [1, 2, 4] meets all conditions; 
  4. in the fourth test case, the array [1, 4, 6, 8, 10, 2, 11] meets all conditions. 
//package codechef;

import java.io.*;
import java.util.*;

/*
harsha1324
*/

public class JUL_1 {

    static FastScanner in;
    static PrintWriter out;
    static Random rand = new Random();
    static final int oo = (int) 1e9 + 10;
    static final long OO = (long) 1e18 + 10;
    static final int MOD = (int) 1e9 + 7;

    static void process(long[] arr, long[] prefSum) {
        for(int i = 1; i <= 1e5 ; i++){
            String strVal = String.valueOf(i);
            long val = Long.parseLong(strVal + new StringBuilder(strVal.substring(0,strVal.length() - 1)).reverse());
            arr[i] = val;
            prefSum[i] = prefSum[i-1] + arr[i];
        }
    }
    static long power(long x, long y)
    {
        long res = 1;

        x = x % MOD;
        if (x == 0)
            return 0;

        while (y > 0)
        {
            if ((y & 1) != 0)
                res = (res * x) % MOD;
            y = y >> 1;
            x = (x * x) % MOD;
        }
        return res;
    }

    static void expressPow_2(long a, HashMap<Integer,Integer> hm){
        ArrayList<Integer> aL = new ArrayList<>();
        while(a > 0){
            aL.add((int) a % 2);
            a = a / 2;
        }
        for (int i = 0; i < aL.size(); i++) {
            if(aL.get(i) == 1) {
                int tmp = hm.getOrDefault(i,0);
                hm.put(i, ++tmp);
            }
        }
    }

    static long gcd(long a , long b){
        if(b == 0)
            return a;
        return gcd(b,a%b);
    }

    public static void main(String[] args){
        in = new FastScanner();
        out = new PrintWriter(System.out);

        int t = in.nextInt();
        outer : while(t > 0){
            double n = in.nextDouble();
            double res = Math.sqrt(n);
            if(res == Math.floor(res))
                out.println((int)res);
            else
                out.println((int)res + 1);
            t--;
        }

        out.flush();
        out.close();
    }

    static class FastScanner {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st=new StringTokenizer("");

        public String next() {
            while (!st.hasMoreElements())
                try {
                    st=new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public int[] readArray(int n) {
            int[] a=new int[n];
            for (int i=0; i<n; i++) {
                a[i]=nextInt();
            }
            return a;
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

    }
}