#include <iostream>
#include <string>
using namespace std;
string rev_str(string str) //字符串逆序函数
{
string restr;
int len = str.size();
int j = len;
for(int i = len-1;i >= 0; i--){
if(!((str[i] >= 'a')&&(str[i] <= 'z')||(str[i] >= 'A')&&(str[i] <= 'Z'))){
restr += str.substr(i+1,j-1-i);
restr += ' ';
j = i;
}
if(i == 0){
restr += str.substr(0,j);
}
}
return restr;
}
int main()
{
string str;
getline(cin,str);
cout << rev_str(str);
return 0;
}
#include <string>
using namespace std;
string rev_str(string str) //字符串逆序函数
{
string restr;
int len = str.size();
int j = len;
for(int i = len-1;i >= 0; i--){
if(!((str[i] >= 'a')&&(str[i] <= 'z')||(str[i] >= 'A')&&(str[i] <= 'Z'))){
restr += str.substr(i+1,j-1-i);
restr += ' ';
j = i;
}
if(i == 0){
restr += str.substr(0,j);
}
}
return restr;
}
int main()
{
string str;
getline(cin,str);
cout << rev_str(str);
return 0;
}