#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
using namespace std;

struct P {
    int cnt;
    string word;
    bool operator < (const P& p) const {
        return (cnt != p.cnt ? cnt > p.cnt : word < p.word);
    }
};

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);

    int n;
    while(cin >> n && n){
        cin.ignore();

        vector<string> str(n);
        for(int i = 0; i < n; ++i){
            getline(cin, str[i]);
        }

        char c;
        cin >> c;

        vector<P> vec;
        for(int k = 0; k < n; ++k){
            for(size_t i = 0; i < str[k].size(); ++i){
                if((i == 0 || str[k][i - 1] == ' ') && str[k][i] == c){
                    size_t j = i;
                    string s;
                    while(j < str[k].size()){
                        if(str[k][j] == ' '){
                            s = str[k].substr(i, j - i);
                            break;
                        }
                        if(j == str[k].size() - 1){
                            s = str[k].substr(i, j - i + 1);
                            break;
                        }
                        ++j;
                    }
                    //cout << s << endl;

                    bool check = false;
                    for(size_t i = 0; i < vec.size(); ++i){
                        if(vec[i].word == s){
                            ++vec[i].cnt;
                            check = true;
                            break;
                        }
                    }

                    if(!check){
                        vec.push_back(P{1, s});
                    }
                }
            }
        }

        sort(vec.begin(), vec.end());

        if(vec.empty()){
            cout << "NA";
        }

        for(int i = 0; i < min(5, (int)vec.size()); ++i){
            if(i != 0) cout << ' ';
            cout << vec[i].word;
        }

        cout << endl;
    }

   return 0;
}