#include <array>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main() {
int m, n, t;
cin >> m;
while (m--) {
cin >> n;
vector<int> number; //记录输入的数
vector<int> group_id; //记录对应分组
map<int, int> elem;
for(int i=0; i<n; i++){
cin >> t;
elem[t]=0; // map初始化,记录出现过的元素
number.push_back(t);
}
map<int, map<int, int>> group;
for(int i=0; i<n; i++){
cin >> t;
group[t]= elem; //分组初始化
group_id.push_back(t);
}
for(int i=0; i<n; i++){
group[group_id[i]][number[i]] ++;
}
for(auto &i : group){
cout<< i.first <<"={";
for(auto &j : i.second){
if(j.first == i.second.rbegin()->first){
cout<< j.first << "=" << j.second;
}else {
cout<< j.first << "=" << j.second <<",";
}
}
cout <<"}" <<endl;
}
}
}
// 64 位输出请用 printf("%lld")