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
99
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
71
73
75
77
79
81
83
85
87
89
91
93
95
97
99
101
103
105
107
109
111
113
115
117
119
121
123
125
127
129
131
133
135
137
139
141
143
145
147
149
151
153
155
157
159
161
163
165
167
169
171
173
175
177
179
181
183
185
187
189
191
193
195
197
199
 99
29
161
177
95
195
183
83
153
63
181
111
149
23
103
17
167
135
171
147
71
115
51
169
125
49
141
193
3
21
13
139
159
101
25
5
163
113
119
73
7
67
53
151
145
107
85
89
189
191
157
81
197
79
127
59
133
87
179
137
57
165
35
55
61
121
91
117
43
143
65
37
187
33
131
175
123
109
93
11
19
199
69
45
39
75
129
173
41
105
15
9
99
155
31
97
47
185
77
27

1.931851653
3.196226611
4.465702219
5.736856623
7.008771102
8.281093968
9.553661305
10.826387200
12.099221274
13.372132512
14.645100987
15.918112605
17.191158259
18.464230694
19.737324500
21.010436133
22.283562263
23.556700727
24.829849560
26.103007187
27.376172462
28.649344249
29.922522051
31.195704692
32.468891893
33.742082996
35.015277559
36.288475370
37.561676016
38.834879126
40.108084606
41.381292209
42.654501797
43.927712932
45.200925705
46.474140148
47.747355603
49.020572617
50.293790682
51.567009723
52.840229758
54.113450760
55.386672671
56.659895296
57.933118569
59.206342682
60.479567372
61.752792818
63.026018737
64.299245193
65.572472013
66.845699518
68.118927442
69.392155812
70.665384422
71.938613686
73.211842992
74.485072905
75.758303055
77.031533374
78.304764251
79.577995147
80.851226648
82.124458183
83.397689899
84.670921988
85.944154279
87.217386648
88.490619395
89.763852237
91.037085184
92.310318534
93.583551972
94.856785462
96.130019187
97.403253104
98.676487172
99.949721352
101.222955607
102.496189900
103.769424507
105.042659319
106.315894015
107.589128889
108.862363946
110.135599080
111.408834331
112.682069666
113.955304906
115.228540565
116.501776008
117.775011837
119.048247602
120.321483288
121.594719211
122.867955301
124.141191342
125.414427604
126.687663797
 18.464230694
102.496189900
112.682069666
60.479567372
124.141191342
116.501776008
52.840229758
97.403253104
40.108084606
115.228540565
70.665384422
94.856785462
14.645100987
65.572472013
10.826387200
106.315894015
85.944154279
108.862363946
93.583551972
45.200925705
73.211842992
32.468891893
107.589128889
79.577995147
31.195704692
89.763852237
122.867955301
1.931851653
13.372132512
8.281093968
88.490619395
101.222955607
64.299245193
15.918112605
3.196226611
103.769424507
71.938613686
75.758303055
46.474140148
4.465702219
42.654501797
33.742082996
96.130019187
92.310318534
68.118927442
54.113450760
56.659895296
120.321483288
121.594719211
99.949721352
51.567009723
125.414427604
50.293790682
80.851226648
37.561676016
84.670921988
55.386672671
113.955304906
87.217386648
36.288475370
105.042659319
22.283562263
35.015277559
38.834879126
77.031533374
57.933118569
74.485072905
27.376172462
91.037085184
41.381292209
23.556700727
119.048247602
21.010436133
83.397689899
111.408834331
78.304764251
69.392155812
59.206342682
7.008771102
12.099221274
126.687663797
43.927712932
28.649344249
24.829849560
47.747355603
82.124458183
110.135599080
26.103007187
66.845699518
9.553661305
5.736856623
63.026018737
98.676487172
19.737324500
61.752792818
29.922522051
117.775011837
49.020572617
17.191158259

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

public class C2_1354 {
	
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		PrintWriter pw = new PrintWriter(System.out);
		
		int t = sc.nextInt();
		while(t-->0) {
			int n = sc.nextInt();
			double ans = 1.0 / (2.0 * Math.sin((90.0 / (2 * n)) * Math.PI / 180.0));
			pw.println(ans);
		}
		pw.flush();
	}

	public static class Scanner {
		StringTokenizer st;
		BufferedReader br;

		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}

		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}

		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}

		public String nextLine() throws IOException {
			return br.readLine();
		}

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

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

		public char nextChar() throws IOException {
			return next().charAt(0);
		}

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

		public int[] nextIntArray(int n) throws IOException {
			int[] array = new int[n];
			for (int i = 0; i < n; i++)
				array[i] = nextInt();
			return array;
		}

		public Integer[] nextIntegerArray(int n) throws IOException {
			Integer[] array = new Integer[n];
			for (int i = 0; i < n; i++)
				array[i] = new Integer(nextInt());
			return array;
		}

		public long[] nextLongArray(int n) throws IOException {
			long[] array = new long[n];
			for (int i = 0; i < n; i++)
				array[i] = nextLong();
			return array;
		}

		public double[] nextDoubleArray(int n) throws IOException {
			double[] array = new double[n];
			for (int i = 0; i < n; i++)
				array[i] = nextDouble();
			return array;
		}

		public static void shuffle(int[] a) {
			int n = a.length;
			Random rand = new Random();
			for (int i = 0; i < n; i++) {
				int tmpIdx = rand.nextInt(n);
				int tmp = a[i];
				a[i] = a[tmpIdx];
				a[tmpIdx] = tmp;
			}
		}

		public boolean ready() throws IOException {
			return br.ready();
		}

		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	}
}
