#include<iostream>
using namespace std;
int dp[5005][5005];
int main(){
	int n;
	cin>>n;
	string s;
	cin>>s;
	int maxi=0;
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			if(i==0&&s[i]==s[j])dp[i][j]=1;
			else if(s[i]==s[j]&&j-i>dp[i-1][j-1]){
				dp[i][j]=dp[i-1][j-1]+1;
			}
			maxi=max(maxi,dp[i][j]);
		}
	}
	cout<<maxi;
}