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

Solution:
#include <bits/stdc++.h>
using namespace std;
//typedef long long int ll;
//#define M (int)(1e9+7)
#define int long long
const int mxN=1e5;
//ll n,m,a[mxN],b[mxN];

bool comp(pair<int,int> a,pair<int,int> b){
    if(a.first==b.first)
        return a.second>b.second;
    else return a.first<b.first;
}

bool isPrime(int n){
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}

int gcd(int a,int b){
    if(b==0)
        return a;
    return gcd(b,a%b);
}
vector<int> store;

void subsetSum(vector<int> value,int l, int r,int sum=0){
    if(l>r)
    {
        store.push_back(sum);
        return;
    }
    subsetSum(value,l+1,r,sum+value[l]);
    subsetSum(value,l+1,r,sum);
}
void print(vector<int> ans){
    for(int i=0;i<ans.size();i++)
    {
        cout<< ans[i]<<" ";
    }cout<<"\n";
}



signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int tt;
    cin >> tt;
    while(tt--)
    {
        int n;
        cin >> n;
        vector<int> seq(n);

        for(int i=0;i<n;i++)
        {
            cin >> seq[i];
        }
        vector<int> ans;

        int first=0,last=n-1;

        for(int i=0;i<n;i++)
        {
            if(i%2==0)
            {
                ans.push_back(seq[first]);
                first++;
            }
            else{
                ans.push_back(seq[last]);
                last--;
            }
        }
        print(ans);

    }

}