#include #include #include #include #include using namespace std; typedef set fnset; main() { map lnames; map ::iterator lnit; fnset *fnames; fnset::iterator fnit; int i; string fn, ln, name; while (!cin.eof()) { cin >> fn; if (!cin.fail()) { cin >> ln; lnit = lnames.find(ln); if (lnit == lnames.end()) { fnames = new fnset; lnames.insert(make_pair(ln, fnames)); } else { fnames = lnit->second; } fnames->insert(fn); } } for (lnit = lnames.begin(); lnit != lnames.end(); lnit++) { fnames = lnit->second; for (fnit = fnames->begin(); fnit != fnames->end(); fnit++) { cout << *fnit << " " << lnit->first << endl; } } }