#include <iostream>
#include <map>
#include <functional>
#include <utility>
#include <cctype>
using namespace std;
int main( )
{
map< string,size_t > words;
string word;
while ( cin >> word)
{
for ( char & c: word) c= tolower ( c) ;
++ words[ word] ;
}
cout << " ----- By word: ------" ;
for ( const auto & w : words) cout << endl<< w.first << ":" << w.second ;
cout << endl<< endl<< " ----- By frequency: ------" ;
multimap< size_t ,string,greater< int >> byFreq;
for ( const auto & w : words) byFreq.insert ( make_pair( w.second , w.first ) ) ;
for ( const auto & w : byFreq) cout << endl<< w.second << ":" << w.first ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4gCiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8Y2N0eXBlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgCnsKICAgbWFwPHN0cmluZyxzaXplX3Q+IHdvcmRzOwogICBzdHJpbmcgd29yZDsKICAgCiAgIHdoaWxlIChjaW4+PndvcmQpICAKICAgeyAKICAgICAgIGZvcihjaGFyJmM6d29yZCljPXRvbG93ZXIoYyk7CiAgICAgICArK3dvcmRzW3dvcmRdOwogICB9CiAgIGNvdXQ8PCIgIC0tLS0tIEJ5IHdvcmQ6IC0tLS0tLSIgOwogICBmb3IoY29uc3QgYXV0byYgdyA6IHdvcmRzKSAgY291dDw8ZW5kbDw8dy5maXJzdDw8IjoiPDx3LnNlY29uZDsKICAgY291dDw8ZW5kbDw8ZW5kbDw8IiAtLS0tLSBCeSBmcmVxdWVuY3k6IC0tLS0tLSI7CiAgIG11bHRpbWFwPHNpemVfdCxzdHJpbmcsZ3JlYXRlcjxpbnQ+PiBieUZyZXE7CiAgIGZvcihjb25zdCBhdXRvJiB3IDogd29yZHMpICBieUZyZXEuaW5zZXJ0KCBtYWtlX3BhaXIody5zZWNvbmQsIHcuZmlyc3QpICk7CiAgIGZvcihjb25zdCBhdXRvJiB3IDogYnlGcmVxKSBjb3V0PDxlbmRsPDx3LnNlY29uZCA8PCI6Ijw8dy5maXJzdDsKICAgcmV0dXJuIDA7Cn0=
stdin
VGhpcyBpcyBzb21lIHNpbXBsZSBiYXNlIHRleHQgdG8gdXNlIGZvciBjb21wYXJpc29uIHdpdGggb3RoZXIgZmlsZXMuCllvdSBtYXkgdXNlIHlvdXIgb3duIGlmIHlvdSBzbyBjaG9vc2U7IHlvdXIgcHJvZ3JhbSBzaG91bGRuJ3QgYWN0dWFsbHkgY2FyZS4KRm9yIGdldHRpbmcgaW50ZXJlc3RpbmcgcmVzdWx0cywgbG9uZ2VyIHBhc3NhZ2VzIG9mIHRleHQgbWF5IGJlIHVzZWZ1bC4KSW4gdGhlb3J5LCBhIGZ1bGwgbm92ZWwgbWlnaHQgd29yaywgYWx0aG91Z2ggaXQgd2lsbCBsaWtlbHkgYmUgc29tZXdoYXQgc2xvdy4KVGhpcyBpcyBzb21lIHNpbXBsZSBiYXNlIHRleHQgdG8gdXNlIGZvciBjb21wYXJpc29uIHdpdGggb3RoZXIgZmlsZXMuClRoaXMgaXMgc29tZSBzaW1wbGUgYmFzZSB0ZXh0IHRvIHVzZSBmb3IgY29tcGFyaXNvbiB3aXRoIG90aGVyIGZpbGVzLg==
This is some simple base text to use for comparison with other files.
You may use your own if you so choose; your program shouldn't actually care.
For getting interesting results, longer passages of text may be useful.
In theory, a full novel might work, although it will likely be somewhat slow.
This is some simple base text to use for comparison with other files.
This is some simple base text to use for comparison with other files.
stdout
----- By word: ------
a:1
actually:1
although:1
base:3
be:2
care.:1
choose;:1
comparison:3
files.:3
for:4
full:1
getting:1
if:1
in:1
interesting:1
is:3
it:1
likely:1
longer:1
may:2
might:1
novel:1
of:1
other:3
own:1
passages:1
program:1
results,:1
shouldn't:1
simple:3
slow.:1
so:1
some:3
somewhat:1
text:4
theory,:1
this:3
to:3
use:4
useful.:1
will:1
with:3
work,:1
you:2
your:2
----- By frequency: ------
for:4
text:4
use:4
base:3
comparison:3
files.:3
is:3
other:3
simple:3
some:3
this:3
to:3
with:3
be:2
may:2
you:2
your:2
a:1
actually:1
although:1
care.:1
choose;:1
full:1
getting:1
if:1
in:1
interesting:1
it:1
likely:1
longer:1
might:1
novel:1
of:1
own:1
passages:1
program:1
results,:1
shouldn't:1
slow.:1
so:1
somewhat:1
theory,:1
useful.:1
will:1
work,:1