#include using namespace std; bool f[55][55]; char s1[55],s2[55]; int cnt[26]; int ans[55]; bool vis[55]; int main() { int cases; scanf("%d",&cases); for(;cases;cases--) { int n,m; scanf("%d%d",&n,&m); memset(f,1,sizeof(f)); bool ok=1; for(int i=1;i<=n;i++) { scanf("%s%s",s1+1,s2+1); memset(cnt,0,sizeof(cnt)); for(int j=1;j<=m;j++) { cnt[s1[j]-'a']++; cnt[s2[j]-'a']--; } for(int j=0;j<26;j++) if (cnt[j]) ok=0; for(int j=1;j<=m;j++) for(int k=1;k<=m;k++) if (s1[j]!=s2[k]) f[j][k]=0; } if (!ok) { puts("-1"); continue; } memset(vis,0,sizeof(vis)); for(int i=1;i<=m;i++) { int id=0; for(int j=1;j<=m;j++) if (!vis[j]&&f[i][j]) { id=j; break; } if (!id) { ok=0; break; } ans[i]=id; vis[id]=1; } if (!ok) puts("-1"); else { for(int i=1;i<=m;i++) { printf("%d",ans[i]); if (i