import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
 
class Scratch {
 
    public static void main
(String[] args
) {         Node
<Integer
> root 
= new Node
<>(8, 
List.
of(                        new Node<>(1),
                        new Node<>(4),
                        new Node<>(3))),
                        new Node<>(3),
                        new Node<>(5),
                        new Node<>(6),
                        new Node<>(4))),
                        new Node<>(12),
                        new Node<>(32),
                        new Node<>(3),
                        new Node<>(1)))));
        System.
out.
println(getMaxValuePerLevel
(root
));     }
 
    public static <T extends Comparable<T>> List<T> getMaxValuePerLevel(Node<T> node) {
        final ArrayList<T> maxPerLevel = new ArrayList<>();
        maxPerLevel.add(node.getValue());
        List<Node<T>> children = node.getChildren();
        while (!children.isEmpty()) {
            final Node<T> defaultNode = children.get(0);
            maxPerLevel.add(children.stream()
                    .map(Node::getValue)
                    .orElseGet(defaultNode::getValue));
            children = children.stream()
                    .map(Node::getChildren)
                    .collect(Collectors.toList());
        }
        return maxPerLevel;
    }
}
 
class Node<T extends Comparable<T>> {
    private final T value;
    private final List<Node<T>> children;
 
    public Node(T value) {
    }
 
    public Node(T value, List<Node<T>> children) {
        this.value = Objects.requireNonNull(value);
        this.children = Objects.requireNonNull(children).stream()
                .filter(Objects::nonNull)
                .collect(Collectors.toUnmodifiableList());
    }
 
    public T getValue() {
        return value;
    }
 
    public List<Node<T>> getChildren() {
        return children;
    }
}
				aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CmltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLk9iamVjdHM7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CgpjbGFzcyBTY3JhdGNoIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgTm9kZTxJbnRlZ2VyPiByb290ID0gbmV3IE5vZGU8Pig4LCBMaXN0Lm9mKAogICAgICAgICAgICAgICAgbmV3IE5vZGU8Pig0LCBMaXN0Lm9mKAogICAgICAgICAgICAgICAgICAgICAgICBuZXcgTm9kZTw+KDEpLAogICAgICAgICAgICAgICAgICAgICAgICBuZXcgTm9kZTw+KDQpLAogICAgICAgICAgICAgICAgICAgICAgICBuZXcgTm9kZTw+KDMpKSksCiAgICAgICAgICAgICAgICBuZXcgTm9kZTw+KDMsIExpc3Qub2YoCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOb2RlPD4oMyksCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOb2RlPD4oNSksCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOb2RlPD4oNiksCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOb2RlPD4oNCkpKSwKICAgICAgICAgICAgICAgIG5ldyBOb2RlPD4oNywgTGlzdC5vZigKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE5vZGU8PigxMiksCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOb2RlPD4oMzIpLAogICAgICAgICAgICAgICAgICAgICAgICBuZXcgTm9kZTw+KDMpLAogICAgICAgICAgICAgICAgICAgICAgICBuZXcgTm9kZTw+KDEpKSkpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZ2V0TWF4VmFsdWVQZXJMZXZlbChyb290KSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyA8VCBleHRlbmRzIENvbXBhcmFibGU8VD4+IExpc3Q8VD4gZ2V0TWF4VmFsdWVQZXJMZXZlbChOb2RlPFQ+IG5vZGUpIHsKICAgICAgICBmaW5hbCBBcnJheUxpc3Q8VD4gbWF4UGVyTGV2ZWwgPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICBtYXhQZXJMZXZlbC5hZGQobm9kZS5nZXRWYWx1ZSgpKTsKICAgICAgICBMaXN0PE5vZGU8VD4+IGNoaWxkcmVuID0gbm9kZS5nZXRDaGlsZHJlbigpOwogICAgICAgIHdoaWxlICghY2hpbGRyZW4uaXNFbXB0eSgpKSB7CiAgICAgICAgICAgIGZpbmFsIE5vZGU8VD4gZGVmYXVsdE5vZGUgPSBjaGlsZHJlbi5nZXQoMCk7CiAgICAgICAgICAgIG1heFBlckxldmVsLmFkZChjaGlsZHJlbi5zdHJlYW0oKQogICAgICAgICAgICAgICAgICAgIC5tYXAoTm9kZTo6Z2V0VmFsdWUpCiAgICAgICAgICAgICAgICAgICAgLm1heChDb21wYXJhdG9yLm5hdHVyYWxPcmRlcigpKQogICAgICAgICAgICAgICAgICAgIC5vckVsc2VHZXQoZGVmYXVsdE5vZGU6OmdldFZhbHVlKSk7CiAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uc3RyZWFtKCkKICAgICAgICAgICAgICAgICAgICAubWFwKE5vZGU6OmdldENoaWxkcmVuKQogICAgICAgICAgICAgICAgICAgIC5mbGF0TWFwKExpc3Q6OnN0cmVhbSkKICAgICAgICAgICAgICAgICAgICAuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1heFBlckxldmVsOwogICAgfQp9CgpjbGFzcyBOb2RlPFQgZXh0ZW5kcyBDb21wYXJhYmxlPFQ+PiB7CiAgICBwcml2YXRlIGZpbmFsIFQgdmFsdWU7CiAgICBwcml2YXRlIGZpbmFsIExpc3Q8Tm9kZTxUPj4gY2hpbGRyZW47CgogICAgcHVibGljIE5vZGUoVCB2YWx1ZSkgewogICAgICAgIHRoaXModmFsdWUsIENvbGxlY3Rpb25zLmVtcHR5TGlzdCgpKTsKICAgIH0KCiAgICBwdWJsaWMgTm9kZShUIHZhbHVlLCBMaXN0PE5vZGU8VD4+IGNoaWxkcmVuKSB7CiAgICAgICAgdGhpcy52YWx1ZSA9IE9iamVjdHMucmVxdWlyZU5vbk51bGwodmFsdWUpOwogICAgICAgIHRoaXMuY2hpbGRyZW4gPSBPYmplY3RzLnJlcXVpcmVOb25OdWxsKGNoaWxkcmVuKS5zdHJlYW0oKQogICAgICAgICAgICAgICAgLmZpbHRlcihPYmplY3RzOjpub25OdWxsKQogICAgICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b1VubW9kaWZpYWJsZUxpc3QoKSk7CiAgICB9CgogICAgcHVibGljIFQgZ2V0VmFsdWUoKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgfQoKICAgIHB1YmxpYyBMaXN0PE5vZGU8VD4+IGdldENoaWxkcmVuKCkgewogICAgICAgIHJldHVybiBjaGlsZHJlbjsKICAgIH0KfQ==