#include using namespace std; #define ll long long #define pb push_back struct animal { string type; ll s, d; }; // M -> C -> D -> E -> M bool cmp(animal &a, animal &b) { if(a.d == b.d) return a.s < b.s; return a.d < b.d; } int main() { ll T; cin >> T; while(T--) { ll m, n; scanf("%lld%lld", &m, &n); animal a[n]; ll i, j, k; char str[10]; for(i = 0; i < n; i++) { scanf("%s", str); string s(str); if(s == "M" || s == "D") a[i].type = "A"; else a[i].type = "B"; } for(i = 0; i < n; i++) scanf("%lld", &a[i].s); for(i = 0; i < n; i++) scanf("%lld", &a[i].d); /* vector v[m+2]; sort(a, a+n, cmp); for(i=0; i%lld\n", i, ans[i][0]); } */ sort(a, a+n, cmp); ll ans[n]; for(i = 0; i < n; i++) ans[i] = -1; ll b[m+1] = {0}; for(i = 0; i < n; i++) { b[a[i].d]++; } ll idx = 0, cnt = 0; for(i = 1; i <= m; i++) { if(b[i] > 0) { while(b[i] > 0) { ans[idx++] = i; b[i]--; } } } for(i = 0; i < n; i++) printf("%lld ", ans[i]); printf("\n"); } return 0; }