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:
﻿//#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
#include <unordered_set>
#include <unordered_map>
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define pb push_back
#define int ll
typedef long long ll;
typedef long double ld;
#pragma comment(linker, "/STACK:66777216")
using namespace std;

template<class A, class B> ostream& operator <<(ostream& out, const pair<A, B>& p) {
    return out << "(" << p.first << ", " << p.second << ")";
}
template<class A> ostream& operator <<(ostream& out, const vector<A>& v) {
    out << "[";
    for (int i = 0; i < v.size(); i++) {
        if (i) out << ", ";
        out << v[i];
    }
    return out << "]";
}

const ll INF = 1e18, MOD1 = 1e9 + 9, MOD2 = 1e9 + 7, MAXN = 5001, MAXLOG = 21, MAXK = 51;

int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }

signed main() {
    //ifstream  cin("counting.in");
    //ofstream cout("counting.out");
    //ifstream cin("input.txt");
    //ofstream cout("output.txt");
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    
    int qw = 1;
    cin >> qw;
    while (qw--) {
        int n;
        cin >> n;
        vector<int> f(n);
        for (int i = 0; i < n; i++)
            cin >> f[i];
        for (int i = 0; i < n / 2; i++) {
            cout << f[i] << ' ' << f[n - 1 - i] << ' ';
        }
        if (n & 1) cout << f[n / 2];
        cout << '\n';
    }

}