#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")