#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
bool isBrother(vector<int> v, string s) {
vector<int> v2(v);
for (int i = 0; i < s.size(); i++) {
int index = s[i] - 96;
v2[index]--;
}
for (int i = 0; i < v2.size(); i++) {
if(v2[i]!=0){
return false;
}
}
return true;
}
int main() {
string s;
vector<string> v;
while (cin >> s) {
v.push_back(s);
}
v.erase(v.begin());
int k = atoi(v.back().c_str());
v.erase(v.end());
string target = v.back();
v.erase(v.end());
vector<int> vt(26, 0);
for (int i = 0; i < target.size(); i++) {
int index = target[i] - 96;
vt[index]++;
}
vector<string> v2;
for (int i = 0; i < v.size(); i++) {
if (v[i] != target) {
if (isBrother(vt, v[i])) {
v2.push_back(v[i]);
}
}
}
sort(v2.begin(), v2.end());
if (v2.size() == 0) {
cout << 0;
} else {
cout << v2.size() << endl;
cout << v2[k - 1];
}
}
// 64 位输出请用 printf("%lld")