Problem: Polycarp has a favorite sequence a[1 ... n] consisting of n integers. He wrote it out on the whiteboard as follows:

  * he wrote the number a_1 to the left side (at the beginning of the whiteboard); 
  * he wrote the number a_2 to the right side (at the end of the whiteboard); 
  * then as far to the left as possible (but to the right from a_1), he wrote the number a_3; 
  * then as far to the right as possible (but to the left from a_2), he wrote the number a_4; 
  * Polycarp continued to act as well, until he wrote out the entire sequence on the whiteboard. 

<image> The beginning of the result looks like this (of course, if n ≥ 4).

For example, if n=7 and a=[3, 1, 4, 1, 5, 9, 2], then Polycarp will write a sequence on the whiteboard [3, 4, 5, 2, 9, 1, 1].

You saw the sequence written on the whiteboard and now you want to restore Polycarp's favorite sequence.

Input

The first line contains a single positive integer t (1 ≤ t ≤ 300) — the number of test cases in the test. Then t test cases follow.

The first line of each test case contains an integer n (1 ≤ n ≤ 300) — the length of the sequence written on the whiteboard.

The next line contains n integers b_1, b_2,…, b_n (1 ≤ b_i ≤ 10^9) — the sequence written on the whiteboard.

Output

Output t answers to the test cases. Each answer — is a sequence a that Polycarp wrote out on the whiteboard.

Example

Input


6
7
3 4 5 2 9 1 1
4
9 2 7 1
11
8 4 3 1 2 7 8 7 9 4 2
1
42
2
11 7
8
1 1 1 1 1 1 1 1


Output


3 1 4 1 5 9 2 
9 1 2 7 
8 2 4 4 3 9 1 7 2 8 7 
42 
11 7 
1 1 1 1 1 1 1 1 

Note

In the first test case, the sequence a matches the sequence from the statement. The whiteboard states after each step look like this:

[3] ⇒ [3, 1] ⇒ [3, 4, 1] ⇒ [3, 4, 1, 1] ⇒ [3, 4, 5, 1, 1] ⇒ [3, 4, 5, 9, 1, 1] ⇒ [3, 4, 5, 2, 9, 1, 1].

Solution (in PYTHON3):

Solution:
t=int(input())
#t=1
from math import *
count=0
#dp=[['' for i in range(5*10**7)] for j in range(26)]
#[int(x) for x in input().strip().split()]
#t=1
def f(n,arr,val,i):
    if val==0:
        return True
    if n==0 or val<0:
        return False
    if (arr[i]>val):
        return f(n-1,arr,val,i+1)
    return f(n-1,arr,val,i+1) or f(n-1,arr,val-arr[i],i+1)
def g(lp,k,n,arr,lpp):
    global count
    if k==0 and n==0:
        count+=1
        if count==1:
            print(''.join(arr))
        return True
    if n==0:
        return False
    if k<0:
        return False
    
    if lp<lpp+1:
        #print(k,n)
        
        arr.append(chr(97+lp))
            
        if (not (g(lp,k-2**lp,n-1,arr,lpp))) and len(arr)>0:
            arr.pop();
        else:
            return True
        
        
        
    if lp<lpp:
        #print(k,n,'*')
        g(lp+1,k,n,arr,lpp)
    return False
for i in range(t):   
    n=int(input())
    arrs=[int(x) for x in input().strip().split()]
    
    arr=[]
    i=0;j=n-1;k=0
    while k<n:
        if k%2==0:
            arr.append(arrs[i])
            i+=1
        else:
            arr.append(arrs[j])
            j-=1
        k+=1
    print(' '.join([str(x) for x in arr]))