
#include<string>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void split(const string &str, vector<string> &vec){
int begin = 0, len = 0;
bool renew_begin = true;
for(int i = 0; i <str.length(); i++){
if((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')){
len++;
if(renew_begin){
begin = i;
renew_begin = false;
}
if(i == str.length()-1){
string temp = str.substr(begin,len);
vec.push_back(temp);
break;
}
}
else{
if(len>=1){
string temp = str.substr(begin,len);
vec.push_back(temp);
renew_begin = true;
len = 0;
}
}
}
}
int main()
{
string str;
getline(cin,str);
vector<string> vec;
split(str, vec);
reverse(vec.begin(), vec.end());
for(auto it = vec.begin(); it != vec.end(); it++)
{
if(it<vec.end()-1)
cout<<*it<<" ";
else
cout<<*it;
}
return 0;
}