import java.io.StreamTokenizer;
import java.io.FileReader;
import java.io.FileDescriptor;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class WordCount {
	private static final Integer ONE = new Integer(1);

	public static void main(String[] args) {
		Map m = new HashMap();

		try {
			StreamTokenizer st = new StreamTokenizer( new FileReader( FileDescriptor.in ) );
			int res;
			Integer freq;

			while( (res = st.nextToken()) == StreamTokenizer.TT_WORD || res == StreamTokenizer.TT_NUMBER) {
				if (res == StreamTokenizer.TT_WORD)
					freq = (Integer) m.get( st.sval );
            else
            	freq = (Integer) m.get( new String(""+st.nval) );

            if (res == StreamTokenizer.TT_WORD)
            	m.put( st.sval, (freq==null ? ONE : new Integer(freq.intValue() + 1)));
				else
					m.put( new String(""+st.nval), (freq==null ? ONE : new Integer(freq.intValue() +1)));
			} //while
        System.out.println(m.size()+" distinct words detected:");
        System.out.println(m);
		} catch (IOException ioe) {
			System.out.println("an IOException occurred\n"+ioe.getMessage() );
		} //catch
	} //main()
} //class WordCount