#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;
for(int i=0; i<n; i++){
string aux;
getline(cin, aux);
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+IG47Cgl2ZWN0b3I8c3RyaW5nPiB2ZXRvcjsKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJc3RyaW5nIGF1eDsKCQlnZXRsaW5lKGNpbiwgYXV4KTsKCQl2ZXRvci5wdXNoX2JhY2soYXV4KTsKCX0KCWZvcihpbnQgdCA9IDA7IHQ8bjsgdCsrKXsKCQlzdHJpbmcgcGFyc2U7CgkJdmVjdG9yPHN0cmluZz4gYXV4OwoJCWZvcihpbnQgaT0wOyBpPHZldG9yW3RdLnNpemUoKTsgaSsrKXsKCQkJaWYodmV0b3JbdF1baV09PScgJyl7CgkJCQlzd2FwKHBhcnNlW3BhcnNlLnNpemUoKS0xXSwgcGFyc2VbMF0pOwoJCQkJaWYocGFyc2VbcGFyc2Uuc2l6ZSgpLTFdPj0nQScgJiYgcGFyc2VbcGFyc2Uuc2l6ZSgpLTFdPD0nWicpewoJCQkJCXBhcnNlW3BhcnNlLnNpemUoKS0xXSA9IHBhcnNlW3BhcnNlLnNpemUoKS0xXSsoJ2EnLSdBJyk7CgkJCQkJcGFyc2VbMF0gPSBwYXJzZVswXSAtICgnYSctJ0EnKTsKCQkJCX0KCQkJCXBhcnNlKz0nYXknOwoJCQkJYXV4LnB1c2hfYmFjayhwYXJzZSk7CgkJCQlwYXJzZS5jbGVhcigpOwoJCQkJY29udGludWU7CgkJCX0KCQkJcGFyc2UrPXZldG9yW3RdW2ldOwoJCX0KCQlpZihwYXJzZS5zaXplKCk+MCl7CgkJCXN3YXAocGFyc2VbcGFyc2Uuc2l6ZSgpLTFdLCBwYXJzZVswXSk7CgkJCWlmKHBhcnNlW3BhcnNlLnNpemUoKS0xXT49J0EnICYmIHBhcnNlW3BhcnNlLnNpemUoKS0xXTw9J1onKXsKCQkJCXBhcnNlW3BhcnNlLnNpemUoKS0xXSA9IHBhcnNlW3BhcnNlLnNpemUoKS0xXSsoJ2EnLSdBJyk7CgkJCQlwYXJzZVswXSA9IHBhcnNlWzBdIC0gKCdhJy0nQScpOwoJCQl9CgkJCWF1eC5wdXNoX2JhY2socGFyc2UpOwoJCQlwYXJzZS5jbGVhcigpOwoJCX0KCQlwcmludChhdXgpOwoJfQoJcmV0dXJuIDA7Cn0=