#include <LEDA/core/d_array.h>
#include <LEDA/core/string.h>
#include <iostream>

using namespace leda;

int main() 
{
	d_array<string,int> N(0);
	string s;

	std::cout << "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
	std::cout << "\nInsert your text. End with word ``FINITO''\n";
	std::cout << "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";

	float T = used_time();
	while(true) {
		std::cin >> s;
		if (s == "FINITO") break;
		N[s]++;
	}
	std::cout << "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
	std::cout << "\nThis computation took " << used_time(T)  << " seconds.\n";
	std::cout << "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
	std::cout << "No. of appearances \t Word \n";
	std::cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
	forall_defined(s,N) std::cout << "\n\t" << N[s] << "\t\t" << s;
	std::cout << "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
}
