#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
using namespace std;
void cuvMod(char rez[]){
int nrLitere = strlen(rez);
if(nrLitere % 2 == 0){
for(int i = nrLitere / 2; rez[i] != '\0'; i++){
cout << rez[i];
}
for(int i = 0; i < nrLitere / 2; i++){
cout << rez[i];
}
}else if(nrLitere % 2 == 1){
int x = nrLitere / 2;
for(int i = nrLitere / 2 + 1; rez[i] != '\0'; i++){
cout << rez[i];
}
cout << rez[x];
for(int i = 0; i < nrLitere / 2; i++){
cout << rez[i];
}
}
}
int main(){
ifstream fin("ex.txt");
char chr[2000];
char cpy[2000];
strncpy(cpy, " ", 2000);
int a = 0, z = 0;
while(cin.getline(chr, 2000)){
//cout << chr << "\n";
//cout << strlen(chr);
for(int i = 0; i < strlen(chr); i++){
//cout << chr[i];
//cout << i << "\n";
a++;
if(!isalpha(chr[i]) || i == strlen(chr) - 1){
a--;
if(i == strlen(chr) - 1){
a++;
}
if(a != 0){
//cout << z << "\n";
//cout << a << "\n";
strncpy(cpy, chr+z, a);
//cout << cpy << "\n";
cuvMod(cpy);
strncpy(cpy, " ", 2000);
}
if(i != strlen(chr) - 1){
cout << chr[i];
z = i+1;
a = 0;
}
}
}
z = 0;
a = 0;
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGN1dk1vZChjaGFyIHJleltdKXsKICAgIGludCBuckxpdGVyZSA9IHN0cmxlbihyZXopOwogICAgaWYobnJMaXRlcmUgJSAyID09IDApewogICAgICAgIGZvcihpbnQgaSA9IG5yTGl0ZXJlIC8gMjsgcmV6W2ldICE9ICdcMCc7IGkrKyl7CiAgICAgICAgICAgIGNvdXQgPDwgcmV6W2ldOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbnJMaXRlcmUgLyAyOyBpKyspewogICAgICAgICAgICBjb3V0IDw8IHJleltpXTsKICAgICAgICB9CiAgICB9ZWxzZSBpZihuckxpdGVyZSAlIDIgPT0gMSl7CiAgICAgICAgaW50IHggPSBuckxpdGVyZSAvIDI7CiAgICAgICAgZm9yKGludCBpID0gbnJMaXRlcmUgLyAyICsgMTsgcmV6W2ldICE9ICdcMCc7IGkrKyl7CiAgICAgICAgICAgIGNvdXQgPDwgcmV6W2ldOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IHJlelt4XTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbnJMaXRlcmUgLyAyOyBpKyspewogICAgICAgICAgICBjb3V0IDw8IHJleltpXTsKICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCl7CiAgICBpZnN0cmVhbSBmaW4oImV4LnR4dCIpOwogICAgY2hhciBjaHJbMjAwMF07CiAgICBjaGFyIGNweVsyMDAwXTsKICAgIHN0cm5jcHkoY3B5LCAiICIsIDIwMDApOwogICAgaW50IGEgPSAwLCB6ID0gMDsKCiAgICB3aGlsZShjaW4uZ2V0bGluZShjaHIsIDIwMDApKXsKICAgICAgICAvL2NvdXQgPDwgY2hyIDw8ICJcbiI7CiAgICAgICAgLy9jb3V0IDw8IHN0cmxlbihjaHIpOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzdHJsZW4oY2hyKTsgaSsrKXsKICAgICAgICAgICAgLy9jb3V0IDw8IGNocltpXTsKICAgICAgICAgICAgLy9jb3V0IDw8IGkgPDwgIlxuIjsKICAgICAgICAgICAgYSsrOwogICAgICAgICAgICBpZighaXNhbHBoYShjaHJbaV0pIHx8IGkgPT0gc3RybGVuKGNocikgLSAxKXsKICAgICAgICAgICAgICAgIGEtLTsKICAgICAgICAgICAgICAgIGlmKGkgPT0gc3RybGVuKGNocikgLSAxKXsKICAgICAgICAgICAgICAgICAgICBhKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihhICE9IDApewogICAgICAgICAgICAgICAgICAgIC8vY291dCA8PCB6IDw8ICJcbiI7CiAgICAgICAgICAgICAgICAgICAgLy9jb3V0IDw8IGEgPDwgIlxuIjsKICAgICAgICAgICAgICAgICAgICBzdHJuY3B5KGNweSwgY2hyK3osIGEpOwogICAgICAgICAgICAgICAgICAgIC8vY291dCA8PCBjcHkgPDwgIlxuIjsKICAgICAgICAgICAgICAgICAgICBjdXZNb2QoY3B5KTsKICAgICAgICAgICAgICAgICAgICBzdHJuY3B5KGNweSwgIiAiLCAyMDAwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKGkgIT0gc3RybGVuKGNocikgLSAxKXsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IGNocltpXTsKICAgICAgICAgICAgICAgICAgICB6ID0gaSsxOwogICAgICAgICAgICAgICAgICAgIGEgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHogPSAwOwogICAgICAgIGEgPSAwOwogICAgICAgIGNvdXQgPDwgIlxuIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=