#include #include #include #include #include using namespace std; typedef set fnset; int main() { map lnames; map ::iterator lnit; fnset::iterator fnit; fnset fnames; string fn, ln; while (cin >> fn >> ln) { lnit = lnames.find(ln); if (lnit == lnames.end()) { lnames.insert(make_pair(ln, fnset())); lnit = lnames.find(ln); } fnset &names = lnit->second; names.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; } } }