#include <iostream>
#include <string>
using namespace std;
int kasowaczka_spacji(string &kot,int j)
{
if (kot[j] != 32) return 0;
else
{
kot.erase(kot.begin()+j);
kasowaczka_spacji(kot, j);
}
}
int main()
{
string tekst;
int flaga = 0; // jeżeli 1 to była spacja i następna literka idzie na dużą
while (getline(cin, tekst))
{
if (tekst[0] == 32)
{
kasowaczka_spacji(tekst, 0);
if (islower(tekst[0])) tekst[0] = toupper(tekst[0]);
}
for (int i = 1; i < tekst.length(); i++)
{
if (flaga == 1 && tekst[i-1] >= 97 and tekst[i-1] <= 122) // check if char is lowercase
{
tekst[i-1]=toupper(tekst[i-1]);
flaga = 0;
if (tekst[i] == 32) // check if char is space
{
kasowaczka_spacji(tekst, i); //tekst.erase(tekst.begin()+i);
flaga = 1;
}
}
else if (flaga == 1 && tekst[i - 1] >= 65 and tekst[i - 1] <= 90) // check if char is uppercase
{
flaga = 0;
}
else if (tekst[i] == 32) // check if char is space
{
kasowaczka_spacji(tekst, i); //tekst.erase(tekst.begin()+i);
flaga = 1;
if (i == tekst.length()-1 && flaga == 1) tekst[i] = toupper(tekst[i]);
}
}
for (int i = 0; i < tekst.length(); i++)
{
cout << tekst[i];
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGthc293YWN6a2Ffc3BhY2ppKHN0cmluZyAma290LGludCBqKQp7CglpZiAoa290W2pdICE9IDMyKSByZXR1cm4gMDsKCWVsc2UKCXsKCQlrb3QuZXJhc2Uoa290LmJlZ2luKCkraik7CgkJa2Fzb3dhY3prYV9zcGFjamkoa290LCBqKTsKCX0KfQoKaW50IG1haW4oKQp7CglzdHJpbmcgdGVrc3Q7CglpbnQgZmxhZ2EgPSAwOyAvLyBqZcW8ZWxpIDEgdG8gYnnFgmEgc3BhY2phIGkgbmFzdMSZcG5hIGxpdGVya2EgaWR6aWUgbmEgZHXFvMSFCgl3aGlsZSAoZ2V0bGluZShjaW4sIHRla3N0KSkKCXsKCQlpZiAodGVrc3RbMF0gPT0gMzIpCgkJewoJCQlrYXNvd2FjemthX3NwYWNqaSh0ZWtzdCwgMCk7CgkJCWlmIChpc2xvd2VyKHRla3N0WzBdKSkgdGVrc3RbMF0gPSB0b3VwcGVyKHRla3N0WzBdKTsKCQl9CgoJCWZvciAoaW50IGkgPSAxOyBpIDwgdGVrc3QubGVuZ3RoKCk7IGkrKykKCQl7CgkJCWlmIChmbGFnYSA9PSAxICYmIHRla3N0W2ktMV0gPj0gOTcgYW5kIHRla3N0W2ktMV0gPD0gMTIyKSAvLyBjaGVjayBpZiBjaGFyIGlzIGxvd2VyY2FzZQoJCQl7CgkJCQl0ZWtzdFtpLTFdPXRvdXBwZXIodGVrc3RbaS0xXSk7CgkJCQlmbGFnYSA9IDA7CgkJCQlpZiAodGVrc3RbaV0gPT0gMzIpIC8vIGNoZWNrIGlmIGNoYXIgaXMgc3BhY2UKCQkJCXsKCQkJCQlrYXNvd2FjemthX3NwYWNqaSh0ZWtzdCwgaSk7IC8vdGVrc3QuZXJhc2UodGVrc3QuYmVnaW4oKStpKTsKCQkJCQlmbGFnYSA9IDE7CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoZmxhZ2EgPT0gMSAmJiB0ZWtzdFtpIC0gMV0gPj0gNjUgYW5kIHRla3N0W2kgLSAxXSA8PSA5MCkgLy8gY2hlY2sgaWYgY2hhciBpcyB1cHBlcmNhc2UKCQkJewoJCQkJZmxhZ2EgPSAwOwoJCQl9CgkJCWVsc2UgaWYgKHRla3N0W2ldID09IDMyKSAvLyBjaGVjayBpZiBjaGFyIGlzIHNwYWNlCgkJCXsKCQkJCWthc293YWN6a2Ffc3BhY2ppKHRla3N0LCBpKTsgLy90ZWtzdC5lcmFzZSh0ZWtzdC5iZWdpbigpK2kpOwoJCQkJZmxhZ2EgPSAxOwoJCQkJaWYgKGkgPT0gdGVrc3QubGVuZ3RoKCktMSAmJiBmbGFnYSA9PSAxKSB0ZWtzdFtpXSA9IHRvdXBwZXIodGVrc3RbaV0pOwoJCQl9CgoJCX0KCgkJZm9yIChpbnQgaSA9IDA7IGkgPCB0ZWtzdC5sZW5ndGgoKTsgaSsrKQoJCXsKCQkJY291dCA8PCB0ZWtzdFtpXTsKCQl9CgkJY291dCA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=