#include <bits/stdc++.h>
using namespace std;
struct aaa{
int x,y;
string z;
};
struct zzz{
int x;
string y;
};
bool bbb(aaa a,aaa b){
if(a.x!=b.x){
return a.x>b.x;
}
else return a.y<b.y;
}
string aaaaa;
int main(){
int n;
scanf("%d",&n);
zzz b[300]{};
int c[n+10][n+10]{};
int len;
for(int i=1;i<=n;i++){
char a[30]{};
cin>>a;
len=strlen(a);
for(int j=0;j<len;j+=2){
int s1,s2;
if(!(a[j]>='0'&&a[j]<='9')){
s1=a[j]-'A'+10;
}
else s1=a[j]-'0';
if(!(a[j+1]>='0'&&a[j+1]<='9')){
s2=a[j+1]-'A'+10;
}
else s2=a[j+1]-'0';
int s=s1*16+s2;
b[s].x++;
string h=aaaaa;
h+=a[j];
h+=a[j+1];
b[s].y=h;
c[i][j/2+1]=s;
}
}
aaa a[300]{};
for(int i=0;i<=256;i++){
a[i]={b[i].x,i,b[i].y};
}
sort(a+1,a+257,bbb);
for(int i=1;i<17;i++){
cout<<a[i].z;
}
printf("\n");
char d[20]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(int i=1;i<=n;i++){
for(int j=1;j<=len/2;j++){
int s1=0,s2=1e7;
for(int r=1;r<17;r++){
if(abs(a[r].y-c[i][j])<s2){
s2=abs(a[r].y-c[i][j]);
s1=r;
}
}
printf("%c",d[s1-1]);
}printf("\n");
}
return 0;
}