// Example 8-1: Case-insenstive character traits
#include <algorithm>
#include <cstddef>
#include <iostream>
#include <istream>
#include <map>
#include <ostream>
#include "cistring.h"

void print(const std::pair<const ci_string, std::size_t>& item)
{
  std::cout << item.first << '\t' << item.second << '\n';
}

int main()
{
  std::map<ci_string, std::size_t> count;
  ci_string word;
  while (std::cin >> word)
    ++count[word];
  std::for_each(count.begin(), count.end(), print);
}
