/* 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;}
}
String[] h
= {"H1",
"H1",
"H2",
"H3",
"H3",
"H5",
"H2",
"H2",
"H3",
"H4", "H2", "H2", "H2", "H1", "H2", "H2", "H3",
"H4", "H4", "H2"};
Node[] mostRecent = new Node[6];
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] = n;
int pLevel = level - 1;
while(mostRecent[pLevel] == null) --pLevel;
mostRecent[pLevel].children.add(n);
for(int j = 0; j < pLevel; j++)
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lewoJcHVibGljIHN0YXRpYyBjbGFzcyBOb2RlewoJCWludCBsZXZlbDsKCQlMaXN0PE5vZGU+IGNoaWxkcmVuID0gbmV3IEFycmF5TGlzdDxOb2RlPigpOwoJCU5vZGUoaW50IGxldmVsKXsgdGhpcy5sZXZlbCA9IGxldmVsO30KCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uewoJCVN0cmluZ1tdIGggPSB7IkgxIiwgIkgxIiwgIkgyIiwgIkgzIiwgIkgzIiwgIkg1IiwgIkgyIiwgIkgyIiwgIkgzIiwKCQkgICAgICAgICAgICAgICAgICAgICJINCIsICJIMiIsICJIMiIsICJIMiIsICJIMSIsICJIMiIsICJIMiIsICJIMyIsCgkJICAgICAgICAgICAgICAgICAgICAiSDQiLCAiSDQiLCAiSDIifTsKCQkgICAgICAgICAgICAgICAgICAgIAoJCU5vZGVbXSBtb3N0UmVjZW50ID0gbmV3IE5vZGVbNl07CgkJbW9zdFJlY2VudFswXSA9IG5ldyBOb2RlKDApOyAgICAgIC8vIHJvb3Qgbm9kZQoJCQoJCWZvcihpbnQgaSA9IDA7IGkgPCBoLmxlbmd0aDsgaSsrKXsKCQkJaW50IGxldmVsID0gSW50ZWdlci5wYXJzZUludCgiIiArIGhbaV0uY2hhckF0KDEpKTsKCQkJTm9kZSBuID0gbmV3IE5vZGUobGV2ZWwpOwoJCQltb3N0UmVjZW50W2xldmVsXSA9IG47CgkJCQoJCQlpbnQgcExldmVsID0gbGV2ZWwgLSAxOwoJCQl3aGlsZShtb3N0UmVjZW50W3BMZXZlbF0gPT0gbnVsbCkgLS1wTGV2ZWw7CgkJCW1vc3RSZWNlbnRbcExldmVsXS5jaGlsZHJlbi5hZGQobik7CgkJCQoJCQlmb3IoaW50IGogPSAwOyBqIDwgcExldmVsOyBqKyspCgkJCQlTeXN0ZW0ub3V0LnByaW50KCJcdCIpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oaFtpXSk7CgkJfSAKCX0KfQ==