Задача №112513. Словарь для файла с пунктуацией

Напишите программу, которая строит алфавитно-частотный словарь для файла input.txt , в котором записаны слова, состоящие из букв латинского алфавита (заглавных и строчных) и знаков препинания (.,:;!?). Заглавные и строчные буквы не различаются. Знаки препинания нужно игнорировать. Слова необходимо отсортировать в порядке убывания частоты (сначала слова, которые встретились чаще всего). Слова с одинаковой частотой должны располагаться в алфавитном порядке.

Входные данные

Входной файл содержит неизвестное количество строк, в каждой из которых записаны слова, состоящее из букв латинского алфавита (заглавных и строчных) и знаков препинания (.,:;!?). В одной строке могут быть записаны несколько слов, разделенных произвольным количеством пробелов. Последняя строка файла – пустая. Пробелы могут быть также в начале и в конце строк. После знака препинания обязательно стоит пробел.

Выходные данные

Программа должна вывести в файл output.txt все различные слова, которые встретились в исходном файле, по одному слову в строке. После каждого слова через пробел записывается количество таких слов в файле. Слова должны быть отсортированы по убыванию частоты (сначала слова, которые встретились чаще всего).

Примеры
Входные данные
  I can.  He  can.  Jump!
I go; jump: want she?
  girl!
Выходные данные
can 2
i 2
jump 2
girl 1
go 1
he 1
she 1
want 1
Сдать: для сдачи задач необходимо войти в систему