/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone{
public static class Node{
int level;
List<Node> children = new ArrayList<Node>();
Node(int level){
this.level = level;
}
@Override
public String toString
(){ StringBuilder sb = new StringBuilder();
for(int i=1; i<level; i++)
sb.append("\t");
sb.append("H" + level + "\n");
for(Node n : children)
sb.append(n.toString());
return sb.toString();
}
}
String[] h
= {"H1",
"H1",
"H2",
"H3",
"H3",
"H2",
"H2",
"H3",
"H4", "H2", "H2", "H2", "H1", "H2", "H2", "H3",
"H4", "H4", "H2"};
Node[] mostRecent = new Node[5];
mostRecent[0] = new Node(0); // root node
for(int i = 0; i < h.length; i++){
int level
= Integer.
parseInt("" + h
[i
].
charAt(1)); Node n = new Node(level);
mostRecent[level - 1].children.add(n);
mostRecent[level] = n;
}
System.
out.
print(mostRecent
[0]); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lewoJcHVibGljIHN0YXRpYyBjbGFzcyBOb2RlewoJCWludCBsZXZlbDsKCQlMaXN0PE5vZGU+IGNoaWxkcmVuID0gbmV3IEFycmF5TGlzdDxOb2RlPigpOwoJCU5vZGUoaW50IGxldmVsKXsKCQkJdGhpcy5sZXZlbCA9IGxldmVsOwoJCX0KCQkKCQlAT3ZlcnJpZGUgcHVibGljIFN0cmluZyB0b1N0cmluZygpewoJCQlTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKCQkJZm9yKGludCBpPTE7IGk8bGV2ZWw7IGkrKykKCQkJCXNiLmFwcGVuZCgiXHQiKTsKCQkJc2IuYXBwZW5kKCJIIiArIGxldmVsICsgIlxuIik7CgkJCWZvcihOb2RlIG4gOiBjaGlsZHJlbikKCQkJCXNiLmFwcGVuZChuLnRvU3RyaW5nKCkpOwoJCQkKCQkJcmV0dXJuIHNiLnRvU3RyaW5nKCk7CgkJfQoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb257CgkJU3RyaW5nW10gaCA9IHsiSDEiLCAiSDEiLCAiSDIiLCAiSDMiLCAiSDMiLCAiSDIiLCAiSDIiLCAiSDMiLAoJCSAgICAgICAgICAgICAgICAgICAgIkg0IiwgIkgyIiwgIkgyIiwgIkgyIiwgIkgxIiwgIkgyIiwgIkgyIiwgIkgzIiwKCQkgICAgICAgICAgICAgICAgICAgICJINCIsICJINCIsICJIMiJ9OwoJCSAgICAgICAgICAgICAgICAgICAgCgkJTm9kZVtdIG1vc3RSZWNlbnQgPSBuZXcgTm9kZVs1XTsKCQltb3N0UmVjZW50WzBdID0gbmV3IE5vZGUoMCk7ICAgICAvLyByb290IG5vZGUKCQkKCQlmb3IoaW50IGkgPSAwOyBpIDwgaC5sZW5ndGg7IGkrKyl7CgkJCWludCBsZXZlbCA9IEludGVnZXIucGFyc2VJbnQoIiIgKyBoW2ldLmNoYXJBdCgxKSk7CgkJCU5vZGUgbiA9IG5ldyBOb2RlKGxldmVsKTsKCQkJbW9zdFJlY2VudFtsZXZlbCAtIDFdLmNoaWxkcmVuLmFkZChuKTsKCQkJbW9zdFJlY2VudFtsZXZlbF0gPSBuOwoJCX0gCgkJCgkJU3lzdGVtLm91dC5wcmludChtb3N0UmVjZW50WzBdKTsKCX0KfQ==