Розпилювач ком#11555

Розпилювач ком

1 секунда
128 мегабайтів
Складна

Як показує практика, правила розставлення ком в англійській мові складні, дратівні та часто неоднозначні. Багато людей, навіть самі англійці, на практиці ігнорують їх та застосовують власні правила або взагалі не використовують ніяких правил.

Доктор Розпилювач Ком вирішила цю проблему, розробивши набір правил, які розставляють коми в реченні без неоднозначності та з мінімальною складністю. У цій задачі вам потрібно допомогти доктору, створивши алгоритм, який автоматично застосовує її правила.

Правила доктора Розпилювача для додавання ком у заданий текст такі:

  1. Якщо деяке слово в тексті має перед собою кому, знайдіть усі входження цього слова в тексті та поставте кому перед кожним з них, за винятком випадків, коли це входження є першим словом речення або перед ним уже стоїть кома.

  2. Якщо деяке слово в тексті має після себе кому, знайдіть усі входження цього слова в тексті та поставте кому після кожного з них, за винятком випадків, коли це входження є останнім словом речення або після нього уже стоїть кома.

  3. Застосовуйте правила та повторно доти, доки жодне з них не може додати нові коми.

Як приклад розглянемо текст

please sit spot. sit spot, sit. spot here now here.

Оскільки у другому реченні після слова spot стоїть кома, кома повинна бути додана й після слова у третьому реченні (але не у першому реченні, оскільки там це останнє слово). Крім того, оскільки у другому реченні перед словом стоїть кома, її слід додати перед цим словом і у першому реченні (але не перед словом на початку другого речення, оскільки це перше слово речення). Нарешті, зауважте, що після додавання коми після слова у третьому реченні з'являється кома перед першим входженням слова . Отже, кома також додається перед іншим входженням слова . Більше ком додати неможливо, тому остаточний результат:

please, sit spot. sit spot, sit. spot, here now, here.

Вхідні дані

Містить один рядок тексту довжиною не менше та не більше 10^6 символів. Кожен символ є або малою латинською буквою, або комою, або точкою, або пробілом. Словом вважається максимальна послідовність букв у тексті. Текст задовольняє такі обмеження:

  • Текст починається зі слова.

  • Між кожними двома словами в тексті знаходиться або один пробіл, або кома та пробіл, або точка та пробіл (що позначає кінець речення та початок нового).

  • Останнє слово тексту закінчується точкою без пробілу після неї.

Вихідні дані

Виведіть результат застосування алгоритму доктора Розпилювача до вихідного тексту.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading