#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")