#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main(){
stack<string>s;
string str, stu = ""; //制造空字符串
getline(cin, str);
for (int i = 0; i < str.size(); i++) { // 通过间接法将一个字符串转入另一个字符串,再将其转进栈。这里用到了字符串的小技巧,很精髓
if (str[i] != ' '){
stu += str[i];
}
else if (str[i] == ' ' && stu != ""){
s.push(stu);
stu = "";
}
}
if (stu != "")。 // 注意最后一个单词
s.push(stu);
while (!s.empty()){。// 最后不得有多余的空格,用到了一个小技巧解决
cout << s.top();
s.pop();
if (s.size() != 0)
cout << ' ';
}
cout << endl;
return 0;
}