import std.stdio, std.conv, std.array, std.string;
import std.algorithm;
import std.container;
import std.range;
import core.stdc.stdlib;
import std.math;
import std.regex;

void main() {
  auto N = readln.chomp.to!int;
  auto S = readln.chomp;
  
  for(int size = N/2; size > 0; size--) {
    auto max_offset = N - size*2 + 1;
    for(int offset=0; offset<max_offset; offset++) {
      if (canFind(S[offset+size..N], S[offset..offset+size])) {
        writeln(size);
        exit(0);
      }
    }
  }

  writeln(0);
}
