#include using namespace std; bitset<55> b[22][55]; int T, n, m; string s, ss; int main(){ cin >> T; while(T--) { cin >> n >> m; for(int i = 1; i <= n; ++i) { cin >> s; cin >> ss; for(int j = 0; j < m; ++j) { b[i][j].reset(); for(int k = 0; k < m; ++k) { if(ss[k] == s[j]) { b[i][j][k] = 1; } } } } bool vis[55]; vector ans; memset(vis, 0, sizeof(vis)); for(int j = 0; j < m; ++j) { bitset<55> bb; bb.set(); for(int i = 1; i <= n; ++i) { bb &= b[i][j]; } for(int i = 0; i < m; ++i) { if(bb[i] && vis[i] == 0) { vis[i] = 1; ans.emplace_back(i + 1); break; } } } if(ans.size() == m) { for(int i = 0; i < m; ++i) { cout << ans[i] << (i == m - 1 ? '\n' : ' '); } } else { cout << -1 << endl; } } return 0; }