#include<cstdio>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
struct FZ {
	int num;
	int organ;
};
int main() {
	int n;
	scanf("%d", &n);
	for (int k = 0; k < n; k++) {
		FZ fz[100];
		vector<int> vec1;
		vector<int> vec2;
		int m;
		scanf("%d", &m);
		for (int i = 0; i < m; i++) {
			scanf("%d", &fz[i].num);
			int flag = 1;
			for (int x = 0; x < vec1.size(); x++) {
				if (fz[i].num == vec1[x]) {
					flag = 0;
					break;
				}
			}
			if (flag == 1)
				vec1.push_back(fz[i].num);
		}
		for (int i = 0; i < m; i++) {
			scanf("%d", &fz[i].organ);
			int flag = 1;
			for (int x = 0; x < vec2.size(); x++) {
				if (fz[i].organ == vec2[x]) {
					flag = 0;
					break;
				}
			}
			if (flag == 1)
				vec2.push_back(fz[i].organ);
		}
		sort(vec1.begin(), vec1.end());
		sort(vec2.begin(), vec2.end());


		int i, j;
		for (i = 0; i < vec2.size(); i++) {
			printf("%d={", vec2[i]);
			int sum = 0;
			for (j = 0; j < vec1.size(); j++) {
				sum = 0;
				for (int x = 0; x < m; x++) {
					if (fz[x].num == vec1[j] && fz[x].organ == vec2[i])
						sum++;
				}
				if (j == vec1.size() - 1)
					break;
				printf("%d=%d,", vec1[j],sum);
			}
			printf("%d=%d}\n",vec1[j],sum);
		}
	}
}