rendered paste body#include <iostream>
#include <string>
#include <vector>
#include <set>
using namespace std;
int w;
int len = 0;
vector<string> words;
set<char> letters;
bool solve(){
cin >> w;
for(int i = 0; i < w; i++){
string s;
cin >> s;
len = max(len, (int)s.size());
words.push_back(s);
}
int count = 0;
for(int wl = len; wl > 0; wl--){
while(count < wl){
int len2 = 0;
count ++;
for(int i = 0; i < words.size(); i++){
for(int j = 0; j < words[i].size(); j++){
letters.insert(words[i][j]);
}
}
set<char>::iterator it;
it = letters.begin();
char c = *it;
//cout << c << endl;
bool removed = false;
for(vector<string>::iterator it = words.begin(); it < words.end(); it++){
string s = *it;
if(s.size() != wl){
continue;
}
for(int j = 0; j < s.size(); j++){
if(s[j] == c){
words.erase(it);
removed = true;
it --;
}else{
len2 = max(len2, (int)s.size());
}
}
}
if(!removed)
break;
letters.clear();
cout << wl << " " << count << endl;
for(int i = 0; i < words.size(); i++){
cout << words[i] << " ";
}
cout << endl;
if(len2 < count){
//return true;
}
}
}
if(words.size() > 0){
return true;
}
return false;
}
int main(){
int n;
cin >> n;
for(int i = 0; i < n; i++){
len = 0;
words.erase(words.begin(), words.end());
bool answer = solve();
if(answer){
cout << "Yes" << endl;
}else{
cout << "No" << endl;
}
}
system("pause");
return 0;
}