// 洗牌 : 存在一定的周期性!
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t, n, k;
cin >> t;
while (t--) {
cin >> n >> k;
vector<int> arr;
arr.resize(2 * n);
for (int i = 0; i < 2 * n; i++) cin >> arr[i];
// 洗牌!
for (int i = 0; i < k; i++) {
vector<int> tmp(arr.begin(), arr.end()); // 对上一次结果进行拷贝!
for (int j = 0; j < n; j++) {
arr[2 * j] = tmp[j]; // 左边的牌的位置!
arr[2 * j + 1] = tmp[j + n]; // 右边的牌的位置!
}
}
for (int i = 0; i < 2 * n - 1; i++) {
cout << arr[i] << " ";
}
cout <<arr[2*n - 1]<<endl;
}
return 0;
}