#include <stdio.h>
#include<string.h>
/*__DBL_MANT_DIG__1、构成单词的字符只有26个大写或小写英文字母;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母
*/
int main() {
char str[5000] = {0};
int dp[5000] = {0};
gets(str);
int i;
int len = strlen(str);
for (i = 0; i < len; i++) {
if ((str[i] >= 'A' && str[i] <= 'Z' ) || (str[i] >= 'a' && str[i] <= 'z')) {
dp[i] = 1;
}
}
int num = 0;
for (i = len - 1; i >= 0; i--) { //从后往前
if (dp[i] == 1) { //是字母
num++; //统计字母数
if (i == 0) {
for (int j = 0; j < num; j++) { //只输出字母,倒着输出
printf("%c", str[i + j]);
}
}
} else { //if(dp[i]==0) 不是字母
for (int j = 0; j < num; j++)
printf("%c", str[i + j + 1]);
num = 0;
printf(" ");
}
}
}