/* Hare Krishna Hare Krishna Krishna Krishna Hare Hare | */
/* Hare Ram Hare Ram Ram Ram Hare Hare || */
#include<bits/stdc++.h>
#include<stdio.h>
#define fo(i,a,b) for(int i=a; i<=b; i++)
#define rfo(i,a,b) for(int i=a; i>=b; i--)
#define in(a,n) for(int i=0; i<n; i++)cin>>a[i]
#define out(a,n) for(int i=0; i<n; i++)cout<<a[i]<<" "
#define ll long long   //10^(-18) < ll < 10^18
#define ld long double
#define en "\n"
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) ((a)*(b))/__gcd(a,b)
#define vi vector<int>
#define mp make_pair
#define ff first
#define ss second
#define rsort(a) sort(a.begin(), a.end(), greater<ll>())
#define all(a) a.begin(), a.end()
#define pb(a) push_back(a)
const int len = 1e9+7;
using namespace std;
//ll h[10000000];
/*
int search(vi v, int l, int h, int k){
	if(l <= h){
		int m = l+(h-l)/2;
		if(v[m] == k || (m == 0 || m == h || (v[m-1] < k && v[m+1] > k)))
			return m;
		else if(v[m] > k )
			return search(v,l,m-1,k);
		else
			return search(v,m+1,h,k);
	}
	return 0;
}

int fact(int n){
	if(n == 0)
		return 1;
	return fact(n-1) * n;
}

bool isPrime(int n){
	if(n == 1)
		return 0;
	bool prime[n+1];
	memset(prime, true, sizeof(prime));
	for(int p = 2; p*p <=n; p++){
		if(prime[p] == true){
			for(int i=p*p; i<=n; i+=p){
				prime[i] = false;
			}
		}
	}
	if(prime[n]){
		return 1;
	}
	else
		return 0;
}
/*
int isDigitPresent(int x, int d) {
    while (x > 0) { 
        if (x % 10 == d) 
            return 1; 
        x = x / 10; 
    } 
    return 0; 
} 
/*
bool is_perfect(ll n){
    ll i;
    for(i=1;i*i<n;i++);
    return i*i==n;
}

void decToBinary(int n) 
{ 
    // array to store binary number 
    int binaryNum[32]; 
  
    // counter for binary array 
    int i = 0; 
    while (n > 0) { 
  
        // storing remainder in binary array 
        binaryNum[i] = n % 2; 
        n = n / 2; 
        i++; 
    } 
  
    // printing binary array in reverse order 
    for (int j = i - 1; j >= 0; j--) 
        cout << binaryNum[j]; 
} */

void solve(){
	int n,i=0,j;
	cin>>n;
	vi a(n);
	in(a,n);
	j = n-1;
	for(; i<=j; i++,j--){
		if(i == j){
			cout<<a[i]<<" ";
			break;
		}
		cout<<a[i]<<" ";
		cout<<a[j]<<" ";
	}
	cout<<en;
}

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	#ifndef ONLINE_JUDGE
		freopen("input.txt","r",stdin);
		freopen("output.txt","w", stdout);
	#endif
	ll t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}
### Prompt

Your task is to create a CPP solution to the following 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].

### Response

```cpp
/* Hare Krishna Hare Krishna Krishna Krishna Hare Hare | */
/* Hare Ram Hare Ram Ram Ram Hare Hare || */
#include<bits/stdc++.h>
#include<stdio.h>
#define fo(i,a,b) for(int i=a; i<=b; i++)
#define rfo(i,a,b) for(int i=a; i>=b; i--)
#define in(a,n) for(int i=0; i<n; i++)cin>>a[i]
#define out(a,n) for(int i=0; i<n; i++)cout<<a[i]<<" "
#define ll long long   //10^(-18) < ll < 10^18
#define ld long double
#define en "\n"
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) ((a)*(b))/__gcd(a,b)
#define vi vector<int>
#define mp make_pair
#define ff first
#define ss second
#define rsort(a) sort(a.begin(), a.end(), greater<ll>())
#define all(a) a.begin(), a.end()
#define pb(a) push_back(a)
const int len = 1e9+7;
using namespace std;
//ll h[10000000];
/*
int search(vi v, int l, int h, int k){
	if(l <= h){
		int m = l+(h-l)/2;
		if(v[m] == k || (m == 0 || m == h || (v[m-1] < k && v[m+1] > k)))
			return m;
		else if(v[m] > k )
			return search(v,l,m-1,k);
		else
			return search(v,m+1,h,k);
	}
	return 0;
}

int fact(int n){
	if(n == 0)
		return 1;
	return fact(n-1) * n;
}

bool isPrime(int n){
	if(n == 1)
		return 0;
	bool prime[n+1];
	memset(prime, true, sizeof(prime));
	for(int p = 2; p*p <=n; p++){
		if(prime[p] == true){
			for(int i=p*p; i<=n; i+=p){
				prime[i] = false;
			}
		}
	}
	if(prime[n]){
		return 1;
	}
	else
		return 0;
}
/*
int isDigitPresent(int x, int d) {
    while (x > 0) { 
        if (x % 10 == d) 
            return 1; 
        x = x / 10; 
    } 
    return 0; 
} 
/*
bool is_perfect(ll n){
    ll i;
    for(i=1;i*i<n;i++);
    return i*i==n;
}

void decToBinary(int n) 
{ 
    // array to store binary number 
    int binaryNum[32]; 
  
    // counter for binary array 
    int i = 0; 
    while (n > 0) { 
  
        // storing remainder in binary array 
        binaryNum[i] = n % 2; 
        n = n / 2; 
        i++; 
    } 
  
    // printing binary array in reverse order 
    for (int j = i - 1; j >= 0; j--) 
        cout << binaryNum[j]; 
} */

void solve(){
	int n,i=0,j;
	cin>>n;
	vi a(n);
	in(a,n);
	j = n-1;
	for(; i<=j; i++,j--){
		if(i == j){
			cout<<a[i]<<" ";
			break;
		}
		cout<<a[i]<<" ";
		cout<<a[j]<<" ";
	}
	cout<<en;
}

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	#ifndef ONLINE_JUDGE
		freopen("input.txt","r",stdin);
		freopen("output.txt","w", stdout);
	#endif
	ll t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}
```