Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×

B. Форматирование последовательности
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
стандартный ввод
вывод
стандартный вывод

Поликарп очень аккуратен. Даже числовые последовательности он набирает аккуратно, не то что его одноклассники. Если он видит последовательность, в которой нет пробела после запятой, стоят два пробела подряд или присутствует еще какая-либо неаккуратность, он тут же начинает ее исправлять. Например, запись «1,2 ,3,...,   10» он исправит на «1, 2, 3, ..., 10».

В этой задаче задана строка s, которая составлена последовательной записью частей, каждая из которых может быть:

  • положительным целым числом произвольной длины (лидирующие нули недопустимы),
  • символом «запятая» («,»),
  • символом «пробел» (« »),
  • многоточием («...» — т.е. тремя точками, записанными подряд).

Поликарп хочет добавлением и удалением пробелов в строке s добиться того, чтобы:

  • после каждой запятой шел ровно один пробел (если запятая является последним символом строки, то это правило к ней не применимо),
  • перед каждым многоточием был ровно один пробел (если многоточие начинает строку, то это правило к нему не применимо),
  • если два подряд идущих числа разделялись исключительно пробелами (одним или более), то следует оставить ровно один из них,
  • других пробелов быть не должно.

Автоматизируйте труд Поликарпа — напишите программу, которая будет обрабатывать заданную строку s.

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

Входные данные содержат единственную строку s. Ее длина — от 1 до 255 символов. Строка s не начинается и не заканчивается пробелом. Ее содержимое соответствует описанию, данному выше.

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

Выведите строку s после обработки. Вывод вашей программы должен посимвольно совпадать с ожидаемым ответом. Вывод строки допустимо заканчивать как с заключительным переводом строки, так и без него.

Примеры
Входные данные
1,2 ,3,...,     10
Выходные данные
1, 2, 3, ..., 10
Входные данные
1,,,4...5......6
Выходные данные
1, , , 4 ...5 ... ...6
Входные данные
...,1,2,3,...
Выходные данные
..., 1, 2, 3, ...