#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(" ");
        }

    }
}