#include <iostream>
#include <string>
using namespace std;
int main() {
string text =
"Dog - woof\n"
"Cat - meow\n"
"Bird - tweet\n"
"mouse - squeek\n"
"Cow - moo\n"
"Frog - croak\n"
"the elephant - toot\n"
"Ducks - quack\n"
"fish - blub\n"
"the seal - ow ow ow";
string line;
size_t start = 0;
while (true) {
size_t end = text.find('\n', start);
if (end == string::npos)
line = text.substr(start);
else
line = text.substr(start, end - start);
// ---- ОБРОБКА ОДНОГО РЯДКА ----
size_t pos = line.find("-");
if (pos != string::npos) {
string name = line.substr(0, pos);
while (!name.empty() && name.front() == ' ')
name.erase(0, 1);
bool makeUpper = true;
for (size_t i = 0; i < name.size(); i++) {
if (name[i] == ' ') {
makeUpper = true;
} else if (makeUpper) {
if (name[i] >= 'a' && name[i] <= 'z')
name[i] -= 32;
makeUpper = false;
}
}
cout << name << endl;
}
// Якщо це був останній рядок
if (end == string::npos)
break;
// Перехід на наступний рядок
start = end + 1;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBzdHJpbmcgdGV4dCA9CiAgICAgICAgIkRvZyAgLSB3b29mXG4iCiAgICAgICAgIkNhdCAgLSBtZW93XG4iCiAgICAgICAgIkJpcmQgIC0gdHdlZXRcbiIKICAgICAgICAibW91c2UgIC0gc3F1ZWVrXG4iCiAgICAgICAgIkNvdyAgLSBtb29cbiIKICAgICAgICAiRnJvZyAgLSBjcm9ha1xuIgogICAgICAgICJ0aGUgZWxlcGhhbnQgIC0gdG9vdFxuIgogICAgICAgICJEdWNrcyAgLSBxdWFja1xuIgogICAgICAgICJmaXNoICAtIGJsdWJcbiIKICAgICAgICAidGhlIHNlYWwgIC0gb3cgb3cgb3ciOwoKICAgIHN0cmluZyBsaW5lOwogICAgc2l6ZV90IHN0YXJ0ID0gMDsKCiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgCiAgICAgICAgc2l6ZV90IGVuZCA9IHRleHQuZmluZCgnXG4nLCBzdGFydCk7CgogICAgICAgIAogICAgICAgIGlmIChlbmQgPT0gc3RyaW5nOjpucG9zKQogICAgICAgICAgICBsaW5lID0gdGV4dC5zdWJzdHIoc3RhcnQpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbGluZSA9IHRleHQuc3Vic3RyKHN0YXJ0LCBlbmQgLSBzdGFydCk7CgogICAgICAgIC8vIC0tLS0g0J7QkdCg0J7QkdCa0JAg0J7QlNCd0J7Qk9CeINCg0K/QlNCa0JAgLS0tLQogICAgICAgIHNpemVfdCBwb3MgPSBsaW5lLmZpbmQoIi0iKTsKCiAgICAgICAgaWYgKHBvcyAhPSBzdHJpbmc6Om5wb3MpIHsKICAgICAgICAgICAgc3RyaW5nIG5hbWUgPSBsaW5lLnN1YnN0cigwLCBwb3MpOwoKICAgICAgICAgICAgd2hpbGUgKCFuYW1lLmVtcHR5KCkgJiYgbmFtZS5mcm9udCgpID09ICcgJykKICAgICAgICAgICAgICAgIG5hbWUuZXJhc2UoMCwgMSk7CgogICAgICAgICAgICBib29sIG1ha2VVcHBlciA9IHRydWU7CiAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZS5zaXplKCk7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKG5hbWVbaV0gPT0gJyAnKSB7CiAgICAgICAgICAgICAgICAgICAgbWFrZVVwcGVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWFrZVVwcGVyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVbaV0gPj0gJ2EnICYmIG5hbWVbaV0gPD0gJ3onKQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lW2ldIC09IDMyOwogICAgICAgICAgICAgICAgICAgIG1ha2VVcHBlciA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBjb3V0IDw8IG5hbWUgPDwgZW5kbDsKICAgICAgICB9CgogICAgICAgIC8vINCv0LrRidC+INGG0LUg0LHRg9CyINC+0YHRgtCw0L3QvdGW0Lkg0YDRj9C00L7QugogICAgICAgIGlmIChlbmQgPT0gc3RyaW5nOjpucG9zKQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgLy8g0J/QtdGA0LXRhdGW0LQg0L3QsCDQvdCw0YHRgtGD0L/QvdC40Lkg0YDRj9C00L7QugogICAgICAgIHN0YXJ0ID0gZW5kICsgMTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==