#XMOJ11791. 星星面包店

星星面包店

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:bakery.in 输出文件:bakery.out

小明和佳佳在太空站开了一家「星星面包店」,银河系各地的顾客每天都通过星际通讯器发来订单。订单上写着一串由食材代号和魔法香料符号组成的文字——食材代号是连续的小写字母,魔法香料符号是逗号(,)、句号(.)、感叹号(!)和问号(?)。

问题是:星际讯号传输过程中,空格经常被弄乱——有时太多,有时太少,有时干脆跑错了位置!小明收到的订单常常像一团浆糊,根本分不清哪里是食材、哪里是香料。

整理规则:

  1. 如果两个食材单词之间没有魔法香料符号,它们之间必须恰好有 一个 空格隔开。
  2. 魔法香料符号前面不能有空格——香料要紧紧跟在食材后面!
  3. 魔法香料符号后面必须恰好有一个空格——方便区分下一个食材。

保证任意两个魔法香料符号之间至少有一个食材单词,且订单始终以食材字母开头、以食材字母结尾。请你帮小明和佳佳写个程序,把乱糟糟的订单整理得漂漂亮亮!

输入格式

输入一行,一个非空字符串 $s$,只包含小写字母、空格和四种魔法香料符号(,.!?)。

字符串长度不超过 $10000$。

输出格式

输出一行,为按照规则整理好的字符串。注意:行末不能有多余空格。

样例

样例 1

milkbread  butter  egg  ,sugar,flour

milkbread butter egg, sugar, flour

样例说明:

原始订单中,单词之间有多余空格,且逗号前后的空格位置不对。整理后:多余空格被合并为单个空格,逗号前的空格被删除,逗号后补上一个空格。

样例 2

moon  cake  star  dust

moon cake star dust

样例说明:

这份订单没有魔法香料符号,只是空格多到离谱。整理后,所有连续空格合并为一个。

样例 3

sun,yummy!mooncake.pizza?yes

sun, yummy! mooncake. pizza? yes

样例说明:

这份订单所有单词和香料挤在了一起。整理后,每个香料符号后面都补上了一个空格。

数据范围

令 $|s|$ 表示输入字符串 $s$ 的长度,有:

$1 \le |s| \le 10000$

字符串保证以字母开头和结尾,且任意两个标点符号之间至少有一个字母。