Problem: The statement of this problem is the same as the statement of problem C1. 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 odd integer n (3 ≤ n ≤ 199). 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
3
5
199


Output


1.931851653
3.196226611
126.687663595

Solution (in PYTHON3):

Solution:
from math import sin
import math

# generation code below
# I'm not sure if hardcoding is against the rules
# but the bounds are very small, so

def gen(n, off):
	ret = []

	rd = (1/sin(math.pi/(n)))/2

	for i in range(0, n):
		ang = i*2*math.pi/n + off
		# print(ang)
		ret.append((rd*math.sin(ang), rd*math.cos(ang)))

	# print(ret)

	y = []
	x = []

	for i, j in ret:
		y.append(j)
		x.append(i)
	
	return max(
		max(y) - min(y),
		max(x) - min(x)
		)

def solve(n, steps):
	ans = 1000000000

	for i in range(0, steps):
		ans = min(ans, gen(n, i*2*math.pi/steps))
 	
	return ans

# l = [0]*400

# # print(199*2)

# for i in range(3, 201, 2):
# 	l[i] = solve(i*2, 10000)
# 	print('%d done' % i)

anss = [0, 0, 0, 1.9318516525781373, 0, 3.1962266107498305, 0, 4.465702135190254, 0, 5.736856622834928, 0, 7.0087710228420494, 0, 8.281093789118493, 0, 9.553661304648701, 0, 10.826387080174317, 0, 12.099221090606225, 0, 13.372132387773902, 0, 14.645100797146942, 0, 15.918112604548813, 0, 17.191158161652258, 0, 18.464230483075127, 0, 19.73732438689784, 0, 21.01043594790047, 0, 22.283562138356153, 0, 23.55670058537602, 0, 24.829849402946728, 0, 26.10300707314532, 0, 27.376172360514044, 0, 28.649344249275096, 0, 29.922521896579926, 0, 31.19570459721047, 0, 32.46889175658776, 0, 33.742082869893075, 0, 35.015277505745324, 0, 36.28847529331536, 0, 37.561675912061524, 0, 38.8348790834848, 0, 40.10808456445453, 0, 41.38129214176658, 0, 42.654501627676176, 0, 43.927712856207805, 0, 45.20092568008885, 0, 46.47413996818731, 0, 47.747355603359544, 0, 49.02057248063344, 0, 50.293790505667644, 0, 51.567009593439025, 0, 52.84022966711982, 0, 54.113450657113596, 0, 55.38667250022384, 0, 56.65989513893493, 0, 57.93311852078776, 0, 59.206342597836084, 0, 60.47956732617132, 0, 61.75279266550647, 0, 63.02601857881007, 0, 64.29924503198401, 0, 65.57247199357865, 0, 66.84569943454058, 0, 68.11892732798874, 0, 69.39215564901495, 0, 70.66538437450639, 0, 71.93861348298647, 0, 73.21184295447277, 0, 74.4850727703492, 0, 75.75830291325114, 0, 77.03153336696215, 0, 78.30476411632051, 0, 79.57799514713489, 0, 80.85122644610787, 0, 82.12445800076682, 0, 83.39768979940064, 0, 84.67092183100281, 0, 85.944154085219, 0, 87.21738655229956, 0, 88.49061922305593, 0, 89.76385208882094, 0, 91.0370851414123, 0, 92.31031837309914, 0, 93.58355177657134, 0, 94.8567853449113, 0, 96.13001907156787, 0, 97.40325295033253, 0, 98.67648697531706, 0, 99.94972114093346, 0, 101.22295544187475, 0, 102.49618987309775, 0, 103.76942442980675, 0, 105.04265910743855, 0, 106.31589390164861, 0, 107.58912880829797, 0, 108.8623638234414, 0, 110.13559894331601, 0, 111.40883416433104, 0, 112.68206948305792, 0, 113.95530489622139, 0, 115.22854040069092, 0, 116.50177599347283, 0, 117.77501167170296, 0, 119.04824743263958, 0, 120.32148327365707, 0, 121.59471919223978, 0, 122.86795518597636, 0, 124.14119125255439, 0, 125.41442738975526, 0, 126.68766359544964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


def solve(n):
	return anss[n]
 
n = int(input())
 
for i in range(n):
	print(solve(int(input())))
 
 
# print(solve(3))
# print(solve(5))
# print(solve(199))