import java.util.*;
class A_YoureGivenAString {
Set<String> set = new HashSet<String>();
for(int l = 1; l < str.length(); ++l){
for(int i = 0; i < str.length()-l; ++i){
String substr
= str.
substring(i, i
+l
); if(!set.contains(substr) && str.indexOf(substr) != str.lastIndexOf(substr)){
set.add(substr);
if(substr.length() > max.length()){
max = substr;
}
}
}
}
System.
out.
println(max.
length()); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgQV9Zb3VyZUdpdmVuQVN0cmluZyB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uewoJCVN0cmluZyBzdHIgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pLm5leHQoKTsKCQlTZXQ8U3RyaW5nPiBzZXQgPSBuZXcgSGFzaFNldDxTdHJpbmc+KCk7CgkJU3RyaW5nIG1heCA9ICIiOwoJCWZvcihpbnQgbCA9IDE7IGwgPCBzdHIubGVuZ3RoKCk7ICsrbCl7CgkJCWZvcihpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCktbDsgKytpKXsKCQkJCVN0cmluZyBzdWJzdHIgPSBzdHIuc3Vic3RyaW5nKGksIGkrbCk7CgkJCQlpZighc2V0LmNvbnRhaW5zKHN1YnN0cikgJiYgc3RyLmluZGV4T2Yoc3Vic3RyKSAhPSBzdHIubGFzdEluZGV4T2Yoc3Vic3RyKSl7CgkJCQkJc2V0LmFkZChzdWJzdHIpOwoJCQkJCWlmKHN1YnN0ci5sZW5ndGgoKSA+IG1heC5sZW5ndGgoKSl7CgkJCQkJCW1heCA9IHN1YnN0cjsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJU3lzdGVtLm91dC5wcmludGxuKG1heC5sZW5ndGgoKSk7Cgl9CgkKfQo=