#include <iostream>
#include <cstring>
using namespace std;
const int registerShift = 'A' - 'a'; // Сдвиг от верхнего регистра к нижнему по таблице ASCII
// Функция, для определния, является ли текущий символ "буквой" в контексте данной задачи
bool IsAllowedSymbol(char symbol) {
return ((symbol >= '1' && symbol <= '9') || (symbol >= 'a' && symbol <= 'z') || (symbol >= 'A' && symbol <= 'Z')) ? true : false;
}
// Функция, для определения, является ли текущее слово палиндромом
bool IsPalindrom(char *word, int begin, int end) {
return (end <= begin) ? true : (word[begin] != word[end]) ? false : IsPalindrom(word, ++begin, --end);
}
// Функция, которая переводит все слово в нижний регистр
void ToLowerCase(char *word) {
for (int i = 0; i < strlen(word); i++) {
if (word[i] >= 'A' && word[i] <= 'Z')
word[i] -= registerShift;
}
}
int main() {
char word[1001];
int wordSize, maxSize = 0, indexOfPalindrom = 0;
for (int i = 1; cin >> word; i++) {
ToLowerCase(word); // Перевод слова в нижний регистр
if (!IsAllowedSymbol(word[strlen(word) - 1]))
word[strlen(word) - 1] = '\0'; // Не учитывать последний символ слова, если это не "буква" (т. е. знак препинания)
wordSize = strlen(word);
if (wordSize > maxSize) {
if (IsPalindrom(word, 0, wordSize - 1)) {
maxSize = wordSize;
indexOfPalindrom = i;
} // Храним новый максимум и индекс текущего наибольшего палиндрома, если он был найден
}
} // Чтение по словам до конца предложения
cout << indexOfPalindrom;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCByZWdpc3RlclNoaWZ0ID0gJ0EnIC0gJ2EnOyAvLyDQodC00LLQuNCzINC+0YIg0LLQtdGA0YXQvdC10LPQviDRgNC10LPQuNGB0YLRgNCwINC6INC90LjQttC90LXQvNGDINC/0L4g0YLQsNCx0LvQuNGG0LUgQVNDSUkKCi8vINCk0YPQvdC60YbQuNGPLCDQtNC70Y8g0L7Qv9GA0LXQtNC10LvQvdC40Y8sINGP0LLQu9GP0LXRgtGB0Y8g0LvQuCDRgtC10LrRg9GJ0LjQuSDRgdC40LzQstC+0LsgItCx0YPQutCy0L7QuSIg0LIg0LrQvtC90YLQtdC60YHRgtC1INC00LDQvdC90L7QuSDQt9Cw0LTQsNGH0LgKYm9vbCBJc0FsbG93ZWRTeW1ib2woY2hhciBzeW1ib2wpIHsKCXJldHVybiAoKHN5bWJvbCA+PSAnMScgJiYgc3ltYm9sIDw9ICc5JykgfHwgKHN5bWJvbCA+PSAnYScgJiYgc3ltYm9sIDw9ICd6JykgfHwgKHN5bWJvbCA+PSAnQScgJiYgc3ltYm9sIDw9ICdaJykpID8gdHJ1ZSA6IGZhbHNlOwp9CgovLyDQpNGD0L3QutGG0LjRjywg0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8sINGP0LLQu9GP0LXRgtGB0Y8g0LvQuCDRgtC10LrRg9GJ0LXQtSDRgdC70L7QstC+INC/0LDQu9C40L3QtNGA0L7QvNC+0LwKYm9vbCBJc1BhbGluZHJvbShjaGFyICp3b3JkLCBpbnQgYmVnaW4sIGludCBlbmQpIHsKCXJldHVybiAoZW5kIDw9IGJlZ2luKSA/IHRydWUgOiAod29yZFtiZWdpbl0gIT0gd29yZFtlbmRdKSA/IGZhbHNlIDogSXNQYWxpbmRyb20od29yZCwgKytiZWdpbiwgLS1lbmQpOwp9CgovLyDQpNGD0L3QutGG0LjRjywg0LrQvtGC0L7RgNCw0Y8g0L/QtdGA0LXQstC+0LTQuNGCINCy0YHQtSDRgdC70L7QstC+INCyINC90LjQttC90LjQuSDRgNC10LPQuNGB0YLRgAp2b2lkIFRvTG93ZXJDYXNlKGNoYXIgKndvcmQpIHsKCSBmb3IgKGludCBpID0gMDsgaSA8IHN0cmxlbih3b3JkKTsgaSsrKSB7CgkgCSAgaWYgKHdvcmRbaV0gPj0gJ0EnICYmIHdvcmRbaV0gPD0gJ1onKQoJIAkgICAgICB3b3JkW2ldIC09IHJlZ2lzdGVyU2hpZnQ7CgkgfQp9CgppbnQgbWFpbigpIHsKCWNoYXIgd29yZFsxMDAxXTsKCWludCB3b3JkU2l6ZSwgbWF4U2l6ZSA9IDAsIGluZGV4T2ZQYWxpbmRyb20gPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGNpbiA+PiB3b3JkOyBpKyspIHsKICAgIAkgVG9Mb3dlckNhc2Uod29yZCk7IC8vINCf0LXRgNC10LLQvtC0INGB0LvQvtCy0LAg0LIg0L3QuNC20L3QuNC5INGA0LXQs9C40YHRgtGAIAogICAgCSBpZiAoIUlzQWxsb3dlZFN5bWJvbCh3b3JkW3N0cmxlbih3b3JkKSAtIDFdKSkKICAgIAkgICAgIHdvcmRbc3RybGVuKHdvcmQpIC0gMV0gPSAnXDAnOyAvLyDQndC1INGD0YfQuNGC0YvQstCw0YLRjCDQv9C+0YHQu9C10LTQvdC40Lkg0YHQuNC80LLQvtC7INGB0LvQvtCy0LAsINC10YHQu9C4INGN0YLQviDQvdC1ICLQsdGD0LrQstCwIiAo0YIuINC1LiDQt9C90LDQuiDQv9GA0LXQv9C40L3QsNC90LjRjykKICAgIAkgd29yZFNpemUgPSBzdHJsZW4od29yZCk7CiAgICAJIGlmICh3b3JkU2l6ZSA+IG1heFNpemUpIHsKCSAgICAgICAgIGlmIChJc1BhbGluZHJvbSh3b3JkLCAwLCB3b3JkU2l6ZSAtIDEpKSB7CgkgICAgICAgICAJIG1heFNpemUgPSB3b3JkU2l6ZTsKCSAgICAgICAgICAgICBpbmRleE9mUGFsaW5kcm9tID0gaTsJICAgIAoJICAgICAgICAgfSAvLyDQpdGA0LDQvdC40Lwg0L3QvtCy0YvQuSDQvNCw0LrRgdC40LzRg9C8INC4INC40L3QtNC10LrRgSDRgtC10LrRg9GJ0LXQs9C+INC90LDQuNCx0L7Qu9GM0YjQtdCz0L4g0L/QsNC70LjQvdC00YDQvtC80LAsINC10YHQu9C4INC+0L0g0LHRi9C7INC90LDQudC00LXQvQoJICAgICB9CiAgICB9IC8vINCn0YLQtdC90LjQtSDQv9C+INGB0LvQvtCy0LDQvCDQtNC+INC60L7QvdGG0LAg0L/RgNC10LTQu9C+0LbQtdC90LjRjwoJY291dCA8PCBpbmRleE9mUGFsaW5kcm9tOwogICAgcmV0dXJuIDA7Cn0=