#include <bits/stdc++.h>
using namespace std;
void print(vector<string> &vetor){
for(int i=0; i<vetor.size(); i++){
if(i!=0) cout << " ";
cout << vetor[i];
}
cout << endl;
}
int main () {
int n;
cin >> n;
vector<string> vetor;
//getchar();
for(int i=0; i<n; i++){
string aux;
getline(cin, aux);
cout << aux << endl;
vetor.push_back(aux);
}
for(int t = 0; t<n; t++){
string parse;
vector<string> aux;
for(int i=0; i<vetor[t].size(); i++){
if(vetor[t][i]==' '){
swap(parse[parse.size()-1], parse[0]);
if(parse[parse.size()-1]>='A' && parse[parse.size()-1]<='Z'){
parse[parse.size()-1] = parse[parse.size()-1]+('a'-'A');
parse[0] = parse[0] - ('a'-'A');
}
parse+="ay";
aux.push_back(parse);
parse.clear();
continue;
}
parse+=vetor[t][i];
}
if(parse.size()>0){
swap(parse[parse.size()-1], parse[0]);
if(parse[parse.size()-1]>='A' && parse[parse.size()-1]<='Z'){
parse[parse.size()-1] = parse[parse.size()-1]+('a'-'A');
parse[0] = parse[0] - ('a'-'A');
}
aux.push_back(parse);
parse.clear();
}
print(aux);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBwcmludCh2ZWN0b3I8c3RyaW5nPiAmdmV0b3IpewoJZm9yKGludCBpPTA7IGk8dmV0b3Iuc2l6ZSgpOyBpKyspewoJCWlmKGkhPTApIGNvdXQgPDwgIiAiOwoJCWNvdXQgPDwgdmV0b3JbaV07Cgl9Cgljb3V0IDw8IGVuZGw7Cn0KCmludCBtYWluICgpIHsKCWludCBuOwoJY2luID4+IG47Cgl2ZWN0b3I8c3RyaW5nPiB2ZXRvcjsKCS8vZ2V0Y2hhcigpOwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQlzdHJpbmcgYXV4OwoJCWdldGxpbmUoY2luLCBhdXgpOwoJCWNvdXQgPDwgYXV4IDw8IGVuZGw7CgkJdmV0b3IucHVzaF9iYWNrKGF1eCk7Cgl9Cglmb3IoaW50IHQgPSAwOyB0PG47IHQrKyl7CgkJc3RyaW5nIHBhcnNlOwoJCXZlY3RvcjxzdHJpbmc+IGF1eDsKCQlmb3IoaW50IGk9MDsgaTx2ZXRvclt0XS5zaXplKCk7IGkrKyl7CgkJCWlmKHZldG9yW3RdW2ldPT0nICcpewoJCQkJc3dhcChwYXJzZVtwYXJzZS5zaXplKCktMV0sIHBhcnNlWzBdKTsKCQkJCWlmKHBhcnNlW3BhcnNlLnNpemUoKS0xXT49J0EnICYmIHBhcnNlW3BhcnNlLnNpemUoKS0xXTw9J1onKXsKCQkJCQlwYXJzZVtwYXJzZS5zaXplKCktMV0gPSBwYXJzZVtwYXJzZS5zaXplKCktMV0rKCdhJy0nQScpOwoJCQkJCXBhcnNlWzBdID0gcGFyc2VbMF0gLSAoJ2EnLSdBJyk7CgkJCQl9CgkJCQlwYXJzZSs9ImF5IjsKCQkJCWF1eC5wdXNoX2JhY2socGFyc2UpOwoJCQkJcGFyc2UuY2xlYXIoKTsKCQkJCWNvbnRpbnVlOwoJCQl9CgkJCXBhcnNlKz12ZXRvclt0XVtpXTsKCQl9CgkJaWYocGFyc2Uuc2l6ZSgpPjApewoJCQlzd2FwKHBhcnNlW3BhcnNlLnNpemUoKS0xXSwgcGFyc2VbMF0pOwoJCQlpZihwYXJzZVtwYXJzZS5zaXplKCktMV0+PSdBJyAmJiBwYXJzZVtwYXJzZS5zaXplKCktMV08PSdaJyl7CgkJCQlwYXJzZVtwYXJzZS5zaXplKCktMV0gPSBwYXJzZVtwYXJzZS5zaXplKCktMV0rKCdhJy0nQScpOwoJCQkJcGFyc2VbMF0gPSBwYXJzZVswXSAtICgnYSctJ0EnKTsKCQkJfQoJCQlhdXgucHVzaF9iYWNrKHBhcnNlKTsKCQkJcGFyc2UuY2xlYXIoKTsKCQl9CgkJcHJpbnQoYXV4KTsKCX0KCXJldHVybiAwOwp9