#include #include #include #include #include #include #include #include #include using namespace std; char a[1000], b[1000]; int main() { int T; scanf("%d", &T); for (int tt = 0; tt < T; ++tt) { int n,m; scanf("%d%d", &n,&m); set sa[55]; set tmp; for (int i=0;i sb[28]; for (int j=0;j::iterator iter = sa[j].begin(); iter != sa[j].end();) { if (sb[a[j]-'a'].count(*iter) == 0) { sa[j].erase(iter++); //iter--; } else iter ++; } /* set tmpp; set::iterator iter = tmpp.begin(); set_intersection(sa[j].begin(), sa[j].end(), sb[a[j]].begin(), sb[a[j]].end(), inserter(tmpp,iter)); sa[j].swap(tmpp); for (set::iterator iter = sa[j].begin(); iter != sa[j].end(); iter++) { cout << j << " " << *iter << endl; }*/ } } // bool succ = true; set st; vector ans; for (int j=0;j::iterator iter = sa[j].begin(); iter != sa[j].end(); ++iter) { // cout << j << " " << *iter << endl; if (st.count(*iter)) continue; zz = *iter; st.insert(zz); break; } if (zz == -1) { succ = false; break; } ans.push_back(zz); } if (succ) { // printf("%d\n", ans.size()); for (int i=0;i