Problem: The statement of this problem is the same as the statement of problem C2. The only difference is that, in problem C1, n is always even, and in C2, n is always odd.

You are given a regular polygon with 2 ⋅ n vertices (it's convex and has equal sides and equal angles) and all its sides have length 1. Let's name it as 2n-gon.

Your task is to find the square of the minimum size such that you can embed 2n-gon in the square. Embedding 2n-gon in the square means that you need to place 2n-gon in the square in such way that each point which lies inside or on a border of 2n-gon should also lie inside or on a border of the square.

You can rotate 2n-gon and/or the square.

Input

The first line contains a single integer T (1 ≤ T ≤ 200) — the number of test cases.

Next T lines contain descriptions of test cases — one per line. Each line contains single even integer n (2 ≤ n ≤ 200). Don't forget you need to embed 2n-gon, not an n-gon.

Output

Print T real numbers — one per test case. For each test case, print the minimum length of a side of the square 2n-gon can be embedded in. Your answer will be considered correct if its absolute or relative error doesn't exceed 10^{-6}.

Example

Input


3
2
4
200


Output


1.000000000
2.414213562
127.321336469

Solution (in PYTHON3):

Solution:
def getN():
    return int(input())
def getNM():
    return map(int, input().split())
def getList():
    return list(map(int, input().split()))

from collections import defaultdict, deque
from sys import exit
import math
import copy
from bisect import bisect_left
from heapq import *
import sys
# sys.setrecursionlimit(1000000)
INF = 10 ** 17
MOD = 998244353

def check(mid, points, origin, rotate):
    height = origin * math.cos(math.radians(rotate))
    # print(height)
    cs = math.cos(math.radians(rotate))
    sn = math.sin(math.radians(rotate))
    for px, py in points:
        py = py - origin
        rx, ry = px*cs - py * sn, px * sn + py * cs
        if abs(rx) > height + 0.0000001 or abs(ry) > height + 0.0000001:
            # print("FALSE", rotate)
            return False

    return True


def solve():
    # n is even
    n = getN()
    deg_each = 360 / (2 * n)
    points = [(0, 0)]
    cx, cy = 0, 0
    deg = deg_each / 2
    for i in range(n):
        # print(deg)
        # print(math.radians(deg))
        # print(math.cos(math.radians(deg)))
        cx += math.cos(math.radians(deg))
        cy += math.sin(math.radians(deg))
        # print(cx, cy)
        points.append((cx, cy))
        deg += deg_each

    origin = points[-1][1] / 2
    mn = 0
    mx = deg_each
    mid = 0
    while(mx - mn > 0.0000001):
        rotate = (mx + mn) / 2
        if check(mid,points, origin, rotate):
            mn = rotate
        else:
            mx = rotate
    # print(rotate)
    print(origin * math.cos(math.radians(rotate)) * 2)

    # print(points)
    # print(math.cos(math.radians(150)))

    # rotate = 60
    # cs = math.cos(math.radians(rotate))
    # sn = math.sin(math.radians(rotate))
    # for px, py in points:
    #     py = py - origin
    #     print("             ", px, py)
    #     rx, ry = px * cs - py * sn, px * sn + py * cs
    #     print(rx, ry)
    #
    # # print(cs, sn)
    # print(check(mid, points, origin, rotate))
    # # print(check(mid, points, origin, 0))
def main():
    n = getN()
    for _ in range(n):
        solve()
if __name__ == "__main__":
    main()