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. 
/*==========================================================================
*   	AUTHOR:    RonWonWon
*   	CREATED:   14.07.2021 19:42:58        
/*==========================================================================*/
import java.io.*;
import java.util.*;

public class A {
	
	public static void main(String[] args) throws IOException {
		/*
    in.ini();
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("output.txt")));
    */
    long startTime = System.nanoTime();
    int t = in.nextInt(), T = 1;  
    while(t-->0) { 
      int n = in.nextInt();
      int s = 1;
      int cnt = 1, k = 3;
      while(s<n){
      	s += k;
      	k += 2;
      	cnt++;
      }
      out.println(cnt);
   		//out.println("Case #"+T+": "+ans); T++;
    }
    /*
    startTime = System.nanoTime() - startTime;
    System.err.println("Time: "+(startTime/1000000));
    */
    out.flush();
	}
	
	static FastScanner in = new FastScanner();
  static PrintWriter out = new PrintWriter(System.out);
	static int oo = Integer.MAX_VALUE;
	static long ooo = Long.MAX_VALUE;
	
	static class FastScanner {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer("");
		
		void ini() throws FileNotFoundException {
			br = new BufferedReader(new FileReader("input.txt"));
		}
		
		String next() {
			while(!st.hasMoreTokens())
				try { st = new StringTokenizer(br.readLine()); }
				catch(IOException e) {}
			return st.nextToken();
		}
		
		String nextLine(){
			try{ return br.readLine(); } 
			catch(IOException e) { } return "";
		}
		
		int nextInt() {
			return Integer.parseInt(next());
		}
		
		int[] readArray(int n) {
			int a[] = new int[n];
			for(int i=0;i<n;i++) a[i] = nextInt();
			return a;
		}
		
		long nextLong() {
			return Long.parseLong(next());
		}
		
		long[] readArrayL(int n) {
			long a[] = new long[n];
			for(int i=0;i<n;i++) a[i] = nextLong();
			return a;
		}
		
		double nextDouble() {
			return Double.parseDouble(next());
		}
		
		double[] readArrayD(int n) {
			double a[] = new double[n];
			for(int i=0;i<n;i++) a[i] = nextDouble();
			return a;
		}
	}

	static final Random random = new Random();

	static void ruffleSort(int[] a){
		int n = a.length;
		for(int i=0;i<n;i++){
			int j = random.nextInt(n), temp = a[j];
			a[j] = a[i]; a[i] = temp;
		}
		Arrays.sort(a); 	
	}
	
	static void ruffleSortL(long[] a){
		int n = a.length;
		for(int i=0;i<n;i++){
			int j = random.nextInt(n);
			long temp = a[j];
			a[j] = a[i]; a[i] = temp;
		}
		Arrays.sort(a); 	
	}
}
