#include <iostream>
#include <string>
using namespace std;
bool isLetter(char x) {
return ( (x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z') );
}
void rearrangeWord(string newS) {
string word;
int numberOfLetters = 0;
for(int i = 0; i < newS.length(); i++) {
if(isLetter(newS[i])) {
word += newS[i];
++numberOfLetters;
} else if(!isLetter(newS[i])) {
if(numberOfLetters != 0) {
if(numberOfLetters % 2 == 0)
word = word.substr(numberOfLetters / 2, numberOfLetters / 2)
+ word.substr(0, numberOfLetters / 2);
else
word = word.substr(numberOfLetters / 2 + 1, numberOfLetters / 2) + word.substr(numberOfLetters / 2, 1)
+ word.substr(0, numberOfLetters / 2);
cout << word;
numberOfLetters = 0;
word = "";
cout << newS[i];
} else
cout << newS[i];
}
if(i == newS.length() - 1) {
if(numberOfLetters % 2 == 0)
word = word.substr(numberOfLetters / 2, numberOfLetters / 2)
+ word.substr(0, numberOfLetters / 2);
else
word = word.substr(numberOfLetters / 2 + 1, numberOfLetters / 2) + word.substr(numberOfLetters / 2, 1)
+ word.substr(0, numberOfLetters / 2);
cout << word;
}
}
}
int main() {
string s, newS = "";
while(getline(cin, s)) {
for(int i = 0; i <= s.length(); i++) {
if(s[i] != ' ' && i < s.length())
newS += s[i];
else {
rearrangeWord(newS);
cout << " ";
newS = "";
}
}
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc0xldHRlcihjaGFyIHgpIHsKICAgIHJldHVybiAoICh4ID49ICdBJyAmJiB4IDw9ICdaJykgfHwgKHggPj0gJ2EnICYmIHggPD0gJ3onKSApOwp9Cgp2b2lkIHJlYXJyYW5nZVdvcmQoc3RyaW5nIG5ld1MpIHsKICAgIHN0cmluZyB3b3JkOwogICAgaW50IG51bWJlck9mTGV0dGVycyA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbmV3Uy5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgaWYoaXNMZXR0ZXIobmV3U1tpXSkpIHsKICAgICAgICAgICAgd29yZCArPSBuZXdTW2ldOwogICAgICAgICAgICArK251bWJlck9mTGV0dGVyczsKICAgICAgICB9IGVsc2UgaWYoIWlzTGV0dGVyKG5ld1NbaV0pKSB7CiAgICAgICAgICAgIGlmKG51bWJlck9mTGV0dGVycyAhPSAwKSB7CiAgICAgICAgICAgICAgICBpZihudW1iZXJPZkxldHRlcnMgJSAyID09IDApCiAgICAgICAgICAgICAgICAgICAgd29yZCA9IHdvcmQuc3Vic3RyKG51bWJlck9mTGV0dGVycyAvIDIsIG51bWJlck9mTGV0dGVycyAvIDIpCiAgICAgICAgICAgICAgICAgICAgICAgICsgd29yZC5zdWJzdHIoMCwgbnVtYmVyT2ZMZXR0ZXJzIC8gMik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgd29yZCA9IHdvcmQuc3Vic3RyKG51bWJlck9mTGV0dGVycyAvIDIgKyAxLCBudW1iZXJPZkxldHRlcnMgLyAyKSArIHdvcmQuc3Vic3RyKG51bWJlck9mTGV0dGVycyAvIDIsIDEpCiAgICAgICAgICAgICAgICAgICAgICAgICsgd29yZC5zdWJzdHIoMCwgbnVtYmVyT2ZMZXR0ZXJzIC8gMik7CiAgICAgICAgICAgICAgICBjb3V0IDw8IHdvcmQ7CiAgICAgICAgICAgICAgICBudW1iZXJPZkxldHRlcnMgPSAwOwogICAgICAgICAgICAgICAgd29yZCA9ICIiOwogICAgICAgICAgICAgICAgY291dCA8PCBuZXdTW2ldOwogICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIGNvdXQgPDwgbmV3U1tpXTsKICAgICAgICB9CiAgICAgICAgaWYoaSA9PSBuZXdTLmxlbmd0aCgpIC0gMSkgewogICAgICAgICAgICBpZihudW1iZXJPZkxldHRlcnMgJSAyID09IDApCiAgICAgICAgICAgICAgICB3b3JkID0gd29yZC5zdWJzdHIobnVtYmVyT2ZMZXR0ZXJzIC8gMiwgbnVtYmVyT2ZMZXR0ZXJzIC8gMikKICAgICAgICAgICAgICAgICAgICArIHdvcmQuc3Vic3RyKDAsIG51bWJlck9mTGV0dGVycyAvIDIpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB3b3JkID0gd29yZC5zdWJzdHIobnVtYmVyT2ZMZXR0ZXJzIC8gMiArIDEsIG51bWJlck9mTGV0dGVycyAvIDIpICsgd29yZC5zdWJzdHIobnVtYmVyT2ZMZXR0ZXJzIC8gMiwgMSkKICAgICAgICAgICAgICAgICAgICArIHdvcmQuc3Vic3RyKDAsIG51bWJlck9mTGV0dGVycyAvIDIpOwogICAgICAgICAgICBjb3V0IDw8IHdvcmQ7CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCkgewogICAgc3RyaW5nIHMsIG5ld1MgPSAiIjsKICAgIHdoaWxlKGdldGxpbmUoY2luLCBzKSkgewogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gcy5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgICAgIGlmKHNbaV0gIT0gJyAnICYmIGkgPCBzLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgbmV3UyArPSBzW2ldOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJlYXJyYW5nZVdvcmQobmV3Uyk7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICIgIjsKICAgICAgICAgICAgICAgIG5ld1MgPSAiIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=