#include<bits/stdc++.h>

using namespace std;

const int maxn = 5e5;

int R[maxn], R1[maxn];

int main() {
    ios_base::sync_with_stdio(0);
    int m;
    cin >> m;
    string s;
    cin >> s;
    s = '1' + s + '2';
    int n = s.size();
    int j=0;
    for(int i=0; i < n-1;) {
        while(s[i-j] == s[i+j+1]) {
            j++;
        }
        R[i] = j;
        int k = 1;
        while(k <= R[i] && R[i]-k != R[i-k]) {
            R[i+k] = min(R[i-k], R[i]-k);
            k++;
        }
        j = max(0, j-k);
        i+=k;
    }

    j=0;
    R1[0] = 1;
    for(int i=1; i < n-1;) {
        while(s[i-j] == s[i+j]) {
            j++;
        }
        R1[i] = j;
        int k = 1;
        while(k < R1[i] && R1[i]-k != R1[i-k]) {
            R1[i+k] = min(R1[i-k], R1[i]-k);
            k++;
        }
        j = max(0, j-k);
        i+=k;
    }

    // for(int i=0; i < n; i++) {
    //     cout << R[i] << " ";
    // }
    // cout << "\n";
    // for(int i=0; i < n; i++) {
    //     cout << R1[i] << " ";
    // }
    // cout << "\n";

    int res = 2*n;
    for(int i=n-2; i > 0; i--) {
        int j=i-1;
        if(j+R1[i] == m) {
            res = min(res, m-2*R1[i]+1);
        }
    }
    for(int i=1; i < m; i++) {
        if(i+R[i] == m) {
            res = min(res, m-2*R[i]);
        }
    }

    cout << res << "\n";
}
