#include #include #include #include using namespace std; typedef vector vi; void init(string& P, vi& b) { int i = 0, j = -1; b[0] = -1; while(i < P.size()) { while(j > -1 && P[i] != P[j]) j = b[j]; b[++i] = ++j; } return ; } int kmp(string& T, string& P, vi& b) { int i = 0, j = 0; while(i < T.size()) { while(j > -1 && T[i] != P[j]) j = b[j]; ++i; ++j; } return i - j; } int main() { int n; cin >> n; string li, ne; cin >> li; vi b(li.size() + 1); ne = li; reverse(ne.begin(), ne.end()); init(ne, b); cout << kmp(li, ne, b); return 0; }