#include char last; int nextDistance; bool isPalindrome(char* string, unsigned length) { nextDistance = -1; for(unsigned i = 0; i < length; ++i) { if(i != 0 && string[i] == last && nextDistance == -1) { nextDistance = i; } if(string[i] != string[length - i - 1]) { return false; } } return true; } int main() { unsigned length, i; char string[500000]; scanf("%u", &length); scanf("%s", string); last = string[length - 1]; for(i = 0; i < length - 1; ++i) { if(string[i] == last) { if(isPalindrome(string + i, length - i)) { printf("%u\n", i); return 0; } if(nextDistance != -1) { i += nextDistance - 1; } } } printf("%u\n", length - 1); return 0; }