#include <iostream>
#include <cstring>
using namespace std;
const int MAX_SIZE = 2000;
bool isLetter(char c) {
return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z');
}
void changeLetter(char text[], const int firstPos, const int numOfWords, const int numOfLetters) {
if (numOfWords <= numOfLetters) {
text[firstPos + numOfWords - 1] = 'a';
} else {
text[firstPos] = 'a';
}
}
void modifyText(char text[], int &numOfWords) {
int firstPos = 0, numOfLetters = 0, textLength = strlen(text);
bool prevLetter = false;
for (int i = 0; i <= textLength; ++i) {
if (isLetter(text[i])) {
++numOfLetters;
if (prevLetter == false) {
++numOfWords;
firstPos = i;
}
prevLetter = true;
} else if (prevLetter) {
changeLetter(text, firstPos, numOfWords, numOfLetters);
numOfLetters = 0;
prevLetter = false;
}
}
}
int main() {
char text[MAX_SIZE + 1];
int numOfWords = 0;
while (cin.getline(text, MAX_SIZE + 1)) {
modifyText(text, numOfWords);
cout << text << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhfU0laRSA9IDIwMDA7Cgpib29sIGlzTGV0dGVyKGNoYXIgYykgewoJcmV0dXJuICgnQScgPD0gYyAmJiBjIDw9ICdaJykgfHwgKCdhJyA8PSBjICYmIGMgPD0gJ3onKTsKfQoKdm9pZCBjaGFuZ2VMZXR0ZXIoY2hhciB0ZXh0W10sIGNvbnN0IGludCBmaXJzdFBvcywgY29uc3QgaW50IG51bU9mV29yZHMsIGNvbnN0IGludCBudW1PZkxldHRlcnMpIHsKICAgIGlmIChudW1PZldvcmRzIDw9IG51bU9mTGV0dGVycykgewogICAgICAgIHRleHRbZmlyc3RQb3MgKyBudW1PZldvcmRzIC0gMV0gPSAnYSc7CiAgICB9IGVsc2UgewogICAgICAgIHRleHRbZmlyc3RQb3NdID0gJ2EnOyAKICAgIH0KfQoKdm9pZCBtb2RpZnlUZXh0KGNoYXIgdGV4dFtdLCBpbnQgJm51bU9mV29yZHMpIHsKICAgIGludCBmaXJzdFBvcyA9IDAsIG51bU9mTGV0dGVycyA9IDAsIHRleHRMZW5ndGggPSBzdHJsZW4odGV4dCk7CiAgICBib29sIHByZXZMZXR0ZXIgPSBmYWxzZTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRleHRMZW5ndGg7ICsraSkgewogICAgICAgIGlmIChpc0xldHRlcih0ZXh0W2ldKSkgewogICAgICAgICAgICArK251bU9mTGV0dGVyczsKICAgICAgICAgICAgaWYgKHByZXZMZXR0ZXIgPT0gZmFsc2UpIHsKICAgICAgICAgICAgCSsrbnVtT2ZXb3JkczsKICAgICAgICAgICAgICAgIGZpcnN0UG9zID0gaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmV2TGV0dGVyID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKHByZXZMZXR0ZXIpIHsKICAgICAgICAgICAgY2hhbmdlTGV0dGVyKHRleHQsIGZpcnN0UG9zLCBudW1PZldvcmRzLCBudW1PZkxldHRlcnMpOwogICAgICAgICAgICBudW1PZkxldHRlcnMgPSAwOwogICAgICAgICAgICBwcmV2TGV0dGVyID0gZmFsc2U7CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGNoYXIgdGV4dFtNQVhfU0laRSArIDFdOwogICAgaW50IG51bU9mV29yZHMgPSAwOwogICAgd2hpbGUgKGNpbi5nZXRsaW5lKHRleHQsIE1BWF9TSVpFICsgMSkpIHsKICAgICAgICBtb2RpZnlUZXh0KHRleHQsIG51bU9mV29yZHMpOwogICAgICAgIGNvdXQgPDwgdGV4dCA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=