#include<iostream>
#include<map>
using namespace std;
class WordCount {
private:
public:
  string word;
  int count;
  WordCount() {
    word = "";
    count = 1;
  }
  WordCount(string s) {
    word = s; count = 1;
  }
};
int main(int argc, char *argv[]) {
  // key is a word (string), data is a count (int)
  map<string, WordCount> bst;
  map<string, WordCount>::iterator it;
      
  // read input, insert words into bst
  string s;
  while (cin >> s) {
    it = bst.find(s);
    if (it == bst.end()) {
      // could have done this instead - 
      //if (bst.count(s) == 0)
      // insert word s into the bst with count of 1
      WordCount w(s);
      bst.insert(pair<string, WordCount>(s, w));
    }
    else {
      it->second ++ ;
      
      // could have done this instead - 
      //bst.at(s) ++;
    }
  }
  // declare a bst to store the same info but now sorted by count
  map<int, WordCount> bst_byCount;
  map<int, WordCount>::iterator it2;
  
  // insert everything from bst into bst_byCount
  for (it=bst.begin(); it!=bst.end(); ++it) {
    //cout << it->first << " => " << it->second.count << '\n';
    bst_byCount.insert(pair<int, WordCount>(it->second.count, it->second));
  }
  // print bst_byCount
  for (it2=bst_byCount.begin(); it2!=bst_byCount.end(); ++it2) {
    cout << it2->second.word << " => " << it2->second.count << '\n';
  }
  asdfjklhasdklfhasdkljf;
  return 0;
}