#ifdef NACHIA #define _GLIBCXX_DEBUG #else // disable assert #define NDEBUG #endif #include #include #include #include using namespace std; using ll = long long; const ll INF = 1ll << 60; #define REP(i,n) for(ll i=0; i using V = vector; template void chmax(A& l, const B& r){ if(l < r) l = r; } template void chmin(A& l, const B& r){ if(r < l) l = r; } void testcase(){ ll N; cin >> N; V A(N), B(N); REP(i,N){ cin >> A[i]; A[i]--; } REP(i,N){ cin >> B[i]; B[i]--; } V IA(N); REP(i,N) IA[A[i]] = i; REP(i,N) B[i] = IA[B[i]]; V> ans(N+1, V(N)); ans[N] = B; for(ll i=N-1; i>=0; i--){ ans[i] = ans[i+1]; REP(j,N-1) if(j%2 == i%2) if(ans[i][j] > ans[i][j+1]) swap(ans[i][j], ans[i][j+1]); } REP(i,N+1) REP(j,N) ans[i][j] = A[ans[i][j]] + 1; REP(i,N+1){ REP(j,N){ if(j) cout << " "; cout << ans[i][j]; } cout << "\n"; } } int main(){ cin.tie(0)->sync_with_stdio(0); // ll T; cin >> T; REP(t,T) testcase(); return 0; }