import java.util.*;
import java.lang.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main
{
{
Pattern pattern = Pattern.compile("(?<!(.)(?=\\1))([^raol1c])\\2(?!\\2)");
Matcher matcher = pattern.matcher("hhh");
while (matcher.find()) {
System.
out.
print("Start index: " + matcher.
start()); System.
out.
print(" End index: " + matcher.
end() + " "); System.
out.
println(matcher.
group()); }
matcher = pattern.matcher("hh");
while (matcher.find()) {
System.
out.
print("Start index: " + matcher.
start()); System.
out.
print(" End index: " + matcher.
end() + " "); System.
out.
println(matcher.
group()); }
matcher = pattern.matcher("ahh");
while (matcher.find()) {
System.
out.
print("Start index: " + matcher.
start()); System.
out.
print(" End index: " + matcher.
end() + " "); System.
out.
println(matcher.
group()); }
matcher = pattern.matcher("hha");
while (matcher.find()) {
System.
out.
print("Start index: " + matcher.
start()); System.
out.
print(" End index: " + matcher.
end() + " "); System.
out.
println(matcher.
group()); }
System.
out.
println("ahhahhhahha:"); matcher = pattern.matcher("ahhahhhahha");
while (matcher.find()) {
System.
out.
print("Start index: " + matcher.
start()); System.
out.
print(" End index: " + matcher.
end() + " "); System.
out.
println(matcher.
group()); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CgppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKCmNsYXNzIE1haW4KewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKCIoPzwhKC4pKD89XFwxKSkoW15yYW9sMWNdKVxcMig/IVxcMikiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhoaDoiKTsKICAgICAgICBNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoImhoaCIpOwogICAgICAgIHdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewogICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiU3RhcnQgaW5kZXg6ICIgKyBtYXRjaGVyLnN0YXJ0KCkpOwogICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIEVuZCBpbmRleDogIiArIG1hdGNoZXIuZW5kKCkgKyAiICIpOwogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG1hdGNoZXIuZ3JvdXAoKSk7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGg6Iik7CiAgICAgICAgbWF0Y2hlciA9IHBhdHRlcm4ubWF0Y2hlcigiaGgiKTsKICAgICAgICB3aGlsZSAobWF0Y2hlci5maW5kKCkpIHsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlN0YXJ0IGluZGV4OiAiICsgbWF0Y2hlci5zdGFydCgpKTsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiBFbmQgaW5kZXg6ICIgKyBtYXRjaGVyLmVuZCgpICsgIiAiKTsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKCkpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFoaDoiKTsKICAgICAgICBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKCJhaGgiKTsKICAgICAgICB3aGlsZSAobWF0Y2hlci5maW5kKCkpIHsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlN0YXJ0IGluZGV4OiAiICsgbWF0Y2hlci5zdGFydCgpKTsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiBFbmQgaW5kZXg6ICIgKyBtYXRjaGVyLmVuZCgpICsgIiAiKTsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKCkpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhoYToiKTsKICAgICAgICBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKCJoaGEiKTsKICAgICAgICB3aGlsZSAobWF0Y2hlci5maW5kKCkpIHsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlN0YXJ0IGluZGV4OiAiICsgbWF0Y2hlci5zdGFydCgpKTsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiBFbmQgaW5kZXg6ICIgKyBtYXRjaGVyLmVuZCgpICsgIiAiKTsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKCkpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFoaGFoaGhhaGhhOiIpOwogICAgICAgIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoImFoaGFoaGhhaGhhIik7CiAgICAgICAgd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7CiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJTdGFydCBpbmRleDogIiArIG1hdGNoZXIuc3RhcnQoKSk7CiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgRW5kIGluZGV4OiAiICsgbWF0Y2hlci5lbmQoKSArICIgIik7CiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obWF0Y2hlci5ncm91cCgpKTsKICAgICAgICB9Cgl9Cn0=