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 PYTHON3):

Solution:
import math
from collections import  OrderedDict,defaultdict 
i=2
x=int(9999999999**0.5)+100
ans=0
a=0
b=0
c=0
d=defaultdict(lambda:0)
dr=OrderedDict()
def binarySearch(arr, l, r, x): 
    le=r
    while l < r: 
  
        mid = (l+r)//2
    
        if x==arr[mid][0]:
            return arr[mid][1]
        elif x>arr[mid][0]:
               l=mid+1
        else:
            r=mid-1                    
    i=max(0,mid-10)
    ans=0
    for i in range(i,le+1):
        if arr[i][0]>x:
           
            return ans
        elif arr[i][0]==x:
            
            return arr[i][1]
        else:
            ans=arr[i][1]
while(i<=x):
    a=i
    b=(a*a-1)//2
    c=b+1
    if a*a+b*b==c*c:
        ans+=1
        if d[(a,b,c)]!=0:
            ans-=1
        else:
            d[(a,b,c)]=ans
            dr[c]=ans
    i+=1
l=[[x,y] for x,y in dr.items()]
y=len(l)
for _ in range(int(input())):
    n=int(input())
    ans=0
    ans=binarySearch(l, 0,y-1,n)
    print(ans)