/** Count words.
One word per line.
Print words in lexicographical order.
To try:
$ g++ -std=c++11 count-words-map.cpp && ./a.out <input
One 3
Three 1
Two 1
*/
#include <iostream>
#include <map>
int main() {
using namespace std;
map<string, size_t> counter;
string line;
getline(cin, line); // read n and ignore it
while(getline(cin, line)) // count words
++counter[line];
if (!cin.eof())
return 1; // I/O error
// print words and their frequencies
for (const auto& p : counter)
cout << p.first << " " << p.second << endl;
}
LyoqIENvdW50IHdvcmRzLgoKICAgIE9uZSB3b3JkIHBlciBsaW5lLgogICAgUHJpbnQgd29yZHMgaW4gbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgoKICAgIFRvIHRyeToKCiAgICAgICQgZysrIC1zdGQ9YysrMTEgY291bnQtd29yZHMtbWFwLmNwcCAmJiAuL2Eub3V0IDxpbnB1dAogICAgICBPbmUgMwogICAgICBUaHJlZSAxCiAgICAgIFR3byAxCgoqLwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxtYXA+CgppbnQgbWFpbigpIHsKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICBtYXA8c3RyaW5nLCBzaXplX3Q+IGNvdW50ZXI7CiAgICBzdHJpbmcgbGluZTsKICAgIGdldGxpbmUoY2luLCBsaW5lKTsgLy8gcmVhZCBuIGFuZCBpZ25vcmUgaXQKICAgIHdoaWxlKGdldGxpbmUoY2luLCBsaW5lKSkgLy8gY291bnQgd29yZHMKICAgICAgICArK2NvdW50ZXJbbGluZV07CgogICAgaWYgKCFjaW4uZW9mKCkpCiAgICAgICAgcmV0dXJuIDE7IC8vIEkvTyBlcnJvcgoKICAgIC8vIHByaW50IHdvcmRzIGFuZCB0aGVpciBmcmVxdWVuY2llcwogICAgZm9yIChjb25zdCBhdXRvJiBwIDogY291bnRlcikKICAgICAgICBjb3V0IDw8IHAuZmlyc3QgPDwgIiAiIDw8IHAuc2Vjb25kIDw8IGVuZGw7Cn0K