#include <iostream>
#include <map>
#include <string>

using namespace std;

class A{
    map<char, A*> m;
public:
    A(string s){add(s);};
    A(){};
    ~A(){
        for(auto& i:m)
            delete i.second;
    };
    void add(string s){
        if(s.empty()){
            m[0] = new A();
        }else{
            char a = s[0];
            string b = s.substr(1, s.length() - 1);
            if(exist(a))
                m[a]->add(b);
            else
                m[a] = new A(b);
        };
    };

    bool exist(char a){
        return m.find(a) != m.end();
    };

    bool check(string s){
        if(s.empty())
            return exist(0);
        if(exist(s[0]))
            return m[s[0]]->check(s.substr(1, s.length() - 1));
        else
            return false;
    };

    void out(string s = ""){
        for(auto i:m){
            if(i.first)
                i.second->out(s + i.first);
            else
                cout<<s<<endl;
        };
    };
};

int main()
{
    A a;
    int n;
    string s;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>s;
        a.add(s);
    };
    a.out();
    cout<<a.check("temp")<<a.check("tem")<<a.check("temp1");
    return 0;
};