/**HDUOJ-1062
* Problem Description:
* Ignatius likes to write words in reverse way. Given a single line of text which
* is written by Ignatius, you should reverse all the words and then output them.
*
* Input
* The input contains several test cases. The first line of the input is a single integer
* T which is the number of test cases. T test cases follow.
* Each test case contains a single line with several words. There will be at most 1000 characters in a line.
*
* Output
* For each test case, you should output the text which is processed.
*
* Sample Input
* 3
* olleh !dlrow
* m'I morf .udh
* I ekil .mca
*
* Sample Output
* hello world!
* I'm from hdu.
* I like acm.
*
* Hint
* Remember to use getchar() to read '\n' after the interger T, then you may use gets() to read a line and process it.
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
getchar();
for( int i = 0; i < n; ++i){
char ch;
stack<char> s;
while( (ch = getchar()) != EOF ){
if( ch == ' '|| ch == '\n'){
while(!s.empty()){
cout<<s.top();
s.pop();
}
cout<<ch;
}else {
s.push(ch);
}
}
}
return 0;
}
// 忘記結束符了,該如何結束呢?
//之前的程序沒法結束會一直等待輸入,考慮到最後判題時的輸入一般都是從文件讀取,
//所以在讀到一個字符後先判斷是不是達到文件末尾,如果達到了就結束程序.
//藉助與棧stack這種數據結構來說實現輸入字符串的倒置輸出.