#include <iostream>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
using namespace std;
int main() {
int m, n;
while (scanf("%d", &m) != EOF) { // 注意 while 处理多个 case
for (int i = 0; i < m; i++) {
map<int, map<int, int>>map1;
vector<vector<int>> arr1(100, vector<int>(2));
set<int>set1;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr1[i][0]);
set1.insert(arr1[i][0]);
}
for (int i = 0; i < n; i++) {
scanf("%d", &arr1[i][1]);
map1[arr1[i][1]] = {};
}
for (int i = 0; i < n; i++) {
if (map1[arr1[i][1]].find(arr1[i][0]) != map1[arr1[i][1]].end()) {
(map1[arr1[i][1]])[arr1[i][0]]++;
} else {
(map1[arr1[i][1]]).insert({arr1[i][0], 1});
}
}
for (auto it = map1.begin(); it != map1.end(); it++) {
printf("%d={", it->first);
for (auto s1 = set1.begin(); s1 != set1.end(); s1++) {
if (it->second.find(*s1) != it->second.end())
printf("%d=%d", *s1, (it->second)[*s1]);
else printf("%d=0", *s1);
if (next(s1) != set1.end())printf(",");
}
printf("}\n");
}
}
}
}
// 64 位输出请用 printf("%lld")