#include using namespace std; typedef long long ll; const int P = 31; const int M = 1e9+7; vector A, B, POT; int ha(int p, int k) { int len = k-p+1; return (1ll*A[k]+1ll*M-1ll*(1ll*A[p-1]*POT[len])%M)%M; } int hb(int p, int k) { int len = k-p+1; return (1ll*B[p]+1ll*M-1ll*(1ll*B[k+1]*POT[len])%M)%M; } int main(){ ios_base::sync_with_stdio(0); cout.tie(0); cin.tie(0); int n; cin>>n; string s; cin>>s; s = ' ' + s; A.resize(n+2,0); B=A; POT=A; for(int i=1; i<=n; ++i) A[i]=(1ll*A[i-1]*P + 1ll*(s[i]-'a'+1))%M; for(int i=n; i>0; --i) B[i]=(1ll*B[i+1]*P + 1ll*(s[i]-'a'+1))%M; POT[0]=1; for(int i=1; i<=n; ++i) POT[i]=(1ll*POT[i-1]*P)%M; int res = n-1; for(int i=1; i<=n; ++i) if(i+i-1>=n) { int k = min(i,n-i+1); if(ha(i-k+1, i) == hb(i,i+k-1)) res=min(res, i-k); } for(int i=1; i<=n; ++i) if(i+i>=n) { int k = n-i; if(ha(i-k+1, i) == hb(i+1,i+k)) res=min(res, i-k); } cout<