#include <iostream>
#include <sstream>
#include <string>
#include <cstring>
using namespace std;
void process (string line, string substring)
{
istringstream linestream(line);
int wordcount = 0;
int matchcount = 0;
string first;
// Ищем substring в каждом слове
while (!linestream.eof())
{
string word;
linestream >> word;
wordcount++;
if (word.find(substring) != string::npos)
{
matchcount++;
if (matchcount == 1) first = word;
}
}
// Выводим согласно условию
if (matchcount == 0)
{
string reversedline = string(line.rbegin(), line.rend());
// ^ ^ ^ Жуткий на вид хак с итераторами, обращающий строку.
// С ним лучше разобраться.
cout << reversedline << endl;
return;
}
if (wordcount == matchcount)
{
cout << line << endl;
return;
}
else // Не все слова имеют подстроку
{
cout << first << endl;
return;
}
}
int main ( )
{
while (!cin.eof())
{
string line;
getline(cin, line);
process(line, "foo"); // Ищем "foo"
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNzdHJpbmc+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBwcm9jZXNzIChzdHJpbmcgbGluZSwgc3RyaW5nIHN1YnN0cmluZykKewoJaXN0cmluZ3N0cmVhbSBsaW5lc3RyZWFtKGxpbmUpOwoKCWludCB3b3JkY291bnQgPSAwOwoJaW50IG1hdGNoY291bnQgPSAwOwoJc3RyaW5nIGZpcnN0OwoKCS8vINCY0YnQtdC8IHN1YnN0cmluZyDQsiDQutCw0LbQtNC+0Lwg0YHQu9C+0LLQtQoJd2hpbGUgKCFsaW5lc3RyZWFtLmVvZigpKQoJewoJCXN0cmluZyB3b3JkOwoJCWxpbmVzdHJlYW0gPj4gd29yZDsKCQl3b3JkY291bnQrKzsKCgkJaWYgKHdvcmQuZmluZChzdWJzdHJpbmcpICE9IHN0cmluZzo6bnBvcykKCQl7CgkJCW1hdGNoY291bnQrKzsKCQkJaWYgKG1hdGNoY291bnQgPT0gMSkgZmlyc3QgPSB3b3JkOwoJCX0KCX0KCgkvLyDQktGL0LLQvtC00LjQvCDRgdC+0LPQu9Cw0YHQvdC+INGD0YHQu9C+0LLQuNGOCgoJaWYgKG1hdGNoY291bnQgPT0gMCkKCXsKCQlzdHJpbmcgcmV2ZXJzZWRsaW5lID0gc3RyaW5nKGxpbmUucmJlZ2luKCksIGxpbmUucmVuZCgpKTsKCQkvLyBeIF4gXiDQltGD0YLQutC40Lkg0L3QsCDQstC40LQg0YXQsNC6INGBINC40YLQtdGA0LDRgtC+0YDQsNC80LgsINC+0LHRgNCw0YnQsNGO0YnQuNC5INGB0YLRgNC+0LrRgy4KCQkvLyAgICAgICDQoSDQvdC40Lwg0LvRg9GH0YjQtSDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPLgoJCWNvdXQgPDwgcmV2ZXJzZWRsaW5lIDw8IGVuZGw7CgkJcmV0dXJuOwoJfQoKCWlmICh3b3JkY291bnQgPT0gbWF0Y2hjb3VudCkKCXsKCQljb3V0IDw8IGxpbmUgPDwgZW5kbDsKCQlyZXR1cm47Cgl9CgllbHNlIC8vINCd0LUg0LLRgdC1INGB0LvQvtCy0LAg0LjQvNC10Y7RgiDQv9C+0LTRgdGC0YDQvtC60YMKCXsKCQljb3V0IDw8IGZpcnN0IDw8IGVuZGw7CgkJcmV0dXJuOwoJfQp9CgppbnQgbWFpbiAoICkKewoJd2hpbGUgKCFjaW4uZW9mKCkpCgl7CgkJc3RyaW5nIGxpbmU7CgkJZ2V0bGluZShjaW4sIGxpbmUpOwoJCXByb2Nlc3MobGluZSwgImZvbyIpOyAvLyDQmNGJ0LXQvCAiZm9vIgoJfQp9Cg==