#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;
}