// 洗牌 : 存在一定的周期性!

#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;
}