#include <iostream>
#include <cstring>
using namespace std;
 
// Functie pentru a verifica daca un caracter este litera
bool esteLitera(char c) {
    return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
}
 
// Functie pentru a numara caracterele alfabetice dintr-un cuvant
int nrChar(const char* cuvant) {
    int count = 0;
    for (int i = 0; cuvant[i] != '\0'; i++) {
        if (esteLitera(cuvant[i])) {
            count++;
        }
    }
    return count;
}

void inter(char c[], char rez[]) {
    int n = strlen(c);
    int litere = nrChar(c);
    strcpy(rez, c);
    int mijloc = litere / 2;
    int leftIndex = 0, rightIndex = 0;
    for (int i = 0; i < n; ++i) {
        if (esteLitera(c[i])) {
            if (leftIndex < mijloc) {
                rez[mijloc + rightIndex] = c[i];
                rightIndex++;
            } else {
                rez[leftIndex - mijloc] = c[i];
                leftIndex++;
            }
        }
    }
    if (litere % 2 != 0) {
        rez[mijloc] = c[mijloc];
    }
}

int main() {
    char car[1000], rezCuv[1000];
    cout << "Introduceti textul (se opreste cu linie goala):" << endl;

    while (cin.getline(car, 1000) && strlen(car) > 0) {
        char* cuvant = strtok(car, " ");
        while (cuvant != nullptr) {
            inter(cuvant, rezCuv);  // Procesam fiecare cuvant
            cout << rezCuv << " ";
            cuvant = strtok(nullptr, " ");
        }
        cout << endl;
    }
    return 0;
}