#include <iostream>
#include <list>

using namespace std;

struct Bejegyzes {
    string nev;
    string tel;
    Bejegyzes(string n, string t) : nev(n), tel(t) {}
};

bool operator<(const Bejegyzes& a, const Bejegyzes &b) {
    return a.nev < b.nev;
}

class Telkonyv {
    list<Bejegyzes> b;
public:
    void lista() {
        if (b.empty()) {
                cout << "Ures" << endl;
        } else {
            int i=1;
            for (list<Bejegyzes>::iterator it = b.begin(); it!=b.end(); ++it) {
                cout  <<i << ". "<< it->nev << " : " << it->tel << endl;
                i++;
            }

        }
    }
    void beir(string nev, string tel) {
        Bejegyzes ub(nev, tel);
        b.push_back(ub);
        b.sort();
// ez is jo, nem kell hozza operator<():
//        list<Bejegyzes>::iterator it = b.begin();
//        while ( it!=b.end() && it->nev < nev) {
//            ++it;
//        }
//        b.insert(it, ub);



    }
};