#include <iostream>
#include <cctype>
#define is_delim(c) (ispunct((c)) || isspace((c)))
char* poli_end(char* s){
char* a, *b, *p = NULL;
int k = 0, n = 0;
do {
if(*s && !is_delim(*s))
++k;
else if(k > 0){
a = s - k;
b = s - 1;
while((a < b) && (*a == *b)){
++a;
--b;
}
if(a >= b){
p = s - k;
n = k;
}
k = 0;
}
} while(*s++ != '\0');
if(p != NULL)
*(p + n) = '\0';
return p;
}
int main(void){
char s[] = "ada, wow, bla, kazak, end.";
char* p = poli_end(s);
if(p != NULL)
std::cout << p << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2N0eXBlPgojZGVmaW5lIGlzX2RlbGltKGMpIChpc3B1bmN0KChjKSkgfHwgaXNzcGFjZSgoYykpKQoKY2hhciogcG9saV9lbmQoY2hhciogcyl7CgljaGFyKiBhLCAqYiwgKnAgPSBOVUxMOwoJaW50ICAgayA9IDAsICBuID0gMDsKCWRvIHsKCQlpZigqcyAmJiAhaXNfZGVsaW0oKnMpKQoJCQkrK2s7CgkJZWxzZSBpZihrID4gMCl7CgkJCWEgPSBzIC0gazsKCQkJYiA9IHMgLSAxOwoJCQl3aGlsZSgoYSA8IGIpICYmICgqYSA9PSAqYikpewoJCQkJKythOwoJCQkJLS1iOwoJCQl9CgkJCWlmKGEgPj0gYil7CgkJCQlwID0gcyAtIGs7CgkJCQluID0gazsKCQkJfQoJCQlrID0gMDsKCQl9Cgl9IHdoaWxlKCpzKysgIT0gJ1wwJyk7CgoJaWYocCAhPSBOVUxMKQoJCSoocCArIG4pID0gJ1wwJzsKCXJldHVybiBwOwp9CgppbnQgbWFpbih2b2lkKXsKCWNoYXIgc1tdID0gImFkYSwgd293LCBibGEsIGthemFrLCBlbmQuIjsKCWNoYXIqIHAgID0gcG9saV9lbmQocyk7CglpZihwICE9IE5VTEwpCgkJc3RkOjpjb3V0IDw8IHAgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0K