import java.util.*;
import java.util.regex.*;
class Ideone
{
{
String regex
= "(?i)(([a-z])(?!\\2)([a-z])(?!\\2|\\3)[a-z])(1[5-9][0-9]{2}|20[01][0-9]|2020)([0-9]{2,4})([0-9a-z])"; Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
if (matcher.find()){
System.
out.
println("Part 1: " + matcher.
group(1)); System.
out.
println("Part 2: " + matcher.
group(4)); System.
out.
println("Part 3: " + matcher.
group(5)); System.
out.
println("Part 4: " + matcher.
group(6)); } else {
System.
out.
println(s
+ " does not match the pattern."); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CgpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3RyaW5nIHJlZ2V4ID0gIig/aSkoKFthLXpdKSg/IVxcMikoW2Etel0pKD8hXFwyfFxcMylbYS16XSkoMVs1LTldWzAtOV17Mn18MjBbMDFdWzAtOV18MjAyMCkoWzAtOV17Miw0fSkoWzAtOWEtel0pIjsKCQlTdHJpbmcgcyA9ICJBVkcxOTA0MjBUIjsKCQlQYXR0ZXJuIHBhdHRlcm4gPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgpOwoJCU1hdGNoZXIgbWF0Y2hlciA9IHBhdHRlcm4ubWF0Y2hlcihzKTsKCQlpZiAobWF0Y2hlci5maW5kKCkpewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhcnQgMTogIiArIG1hdGNoZXIuZ3JvdXAoMSkpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhcnQgMjogIiArIG1hdGNoZXIuZ3JvdXAoNCkpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhcnQgMzogIiArIG1hdGNoZXIuZ3JvdXAoNSkpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhcnQgNDogIiArIG1hdGNoZXIuZ3JvdXAoNikpOwoJCX0gZWxzZSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihzICsgIiBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVybi4iKTsKCQl9Cgl9Cn0=