//< -> <=
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<ctime>
#include<cmath>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("------------------------------\n");
using namespace std;
const int maxn=1e5+10 ;
ll n,b[maxn],ans[maxn];
struct node{
ll id,val;
}a[maxn];
bool cmp(node x,node y){
return x.val<y.val;//不可以<=
}
int main()
{
ios::sync_with_stdio(false);
int T;cin>>T;
while(T--)
{
memset(ans,0,sizeof(ans));
int n,k;cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i].val,a[i].id=i;
for(int i=1;i<=n;i++) cin>>b[i];
sort(a+1,a+1+n,cmp);
sort(b+1,b+1+n);
for(int i=1;i<=n;i++)
ans[a[i].id]=b[i];
for(int i=1;i<=n;i++) cout<<ans[i]<<" ";
cout<<endl;
}
return 0;
}