program ideone;
{$mode objfpc}{$H+}
type
TNode = record
SubNodes: array of TNode;
end;
function Node(ASubNodes: array of TNode): TNode;
var
intNodeIdx: Integer;
begin
SetLength(Result.SubNodes, Length(ASubNodes));
for intNodeIdx := 0 to High(ASubNodes) do
Result.SubNodes[intNodeIdx] := ASubNodes[intNodeIdx];
end;
var
nodeRoot: TNode;
begin
nodeRoot := Node([
Node([
Node([
Node([
Node([
Node([
Node([
Node([
Node([
])
])
])
])
])
])
])
])
]);
end.
cHJvZ3JhbSBpZGVvbmU7Cgp7JG1vZGUgb2JqZnBjfXskSCt9Cgp0eXBlCiAgVE5vZGUgPSByZWNvcmQKICAgIFN1Yk5vZGVzOiBhcnJheSBvZiBUTm9kZTsKICBlbmQ7CgogIGZ1bmN0aW9uIE5vZGUoQVN1Yk5vZGVzOiBhcnJheSBvZiBUTm9kZSk6IFROb2RlOwogIHZhcgogICAgaW50Tm9kZUlkeDogSW50ZWdlcjsKICBiZWdpbgogICAgU2V0TGVuZ3RoKFJlc3VsdC5TdWJOb2RlcywgTGVuZ3RoKEFTdWJOb2RlcykpOwoKICAgIGZvciBpbnROb2RlSWR4IDo9IDAgdG8gSGlnaChBU3ViTm9kZXMpIGRvCiAgICAgIFJlc3VsdC5TdWJOb2Rlc1tpbnROb2RlSWR4XSA6PSBBU3ViTm9kZXNbaW50Tm9kZUlkeF07CiAgZW5kOwoKdmFyCiAgbm9kZVJvb3Q6IFROb2RlOwpiZWdpbgogIG5vZGVSb290IDo9IE5vZGUoWwogICAgTm9kZShbCiAgICAgIE5vZGUoWwogICAgICAgIE5vZGUoWwogICAgICAgICAgTm9kZShbCiAgICAgICAgICAgIE5vZGUoWwogICAgICAgICAgICAgIE5vZGUoWwogICAgICAgICAgICAgICAgTm9kZShbCiAgICAgICAgICAgICAgICAgIE5vZGUoWwogICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICBdKQogICAgICAgICAgICBdKQogICAgICAgICAgXSkKICAgICAgICBdKQogICAgICBdKQogICAgXSkKICBdKTsKZW5kLg==