import java.util.List;
class SO53797703 {
public static void main
(String[] args
) {}
public interface Node<T, N extends Node<T, N>> {
T getValue();
List<N> getNeighbors();
void addNodes(List<N> nodes);
}
public interface TreeNode<T> extends Node<T, TreeNode<T>> {
List<TreeNode<T>> getChildren();
void addChildren(List<TreeNode<T>> treeNodes);
@Override
default List<TreeNode<T>> getNeighbors() {
return getChildren();
}
@Override
default void addNodes(List<TreeNode<T>> nodes) {
addChildren(nodes);
}
}
}
aW1wb3J0IGphdmEudXRpbC5MaXN0OwoKY2xhc3MgU081Mzc5NzcwMyB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7fQoKICAgIHB1YmxpYyBpbnRlcmZhY2UgTm9kZTxULCBOIGV4dGVuZHMgTm9kZTxULCBOPj4gewogICAgICAgIFQgZ2V0VmFsdWUoKTsKICAgICAgICBMaXN0PE4+IGdldE5laWdoYm9ycygpOwogICAgICAgIHZvaWQgYWRkTm9kZXMoTGlzdDxOPiBub2Rlcyk7CiAgICB9CgogICAgcHVibGljIGludGVyZmFjZSBUcmVlTm9kZTxUPiBleHRlbmRzIE5vZGU8VCwgVHJlZU5vZGU8VD4+IHsKICAgICAgICBMaXN0PFRyZWVOb2RlPFQ+PiBnZXRDaGlsZHJlbigpOwogICAgICAgIHZvaWQgYWRkQ2hpbGRyZW4oTGlzdDxUcmVlTm9kZTxUPj4gdHJlZU5vZGVzKTsKCiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgZGVmYXVsdCBMaXN0PFRyZWVOb2RlPFQ+PiBnZXROZWlnaGJvcnMoKSB7CiAgICAgICAgICAgIHJldHVybiBnZXRDaGlsZHJlbigpOwogICAgICAgIH0KCiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgZGVmYXVsdCB2b2lkIGFkZE5vZGVzKExpc3Q8VHJlZU5vZGU8VD4+IG5vZGVzKSB7CiAgICAgICAgICAgIGFkZENoaWxkcmVuKG5vZGVzKTsKICAgICAgICB9CiAgICB9Cn0=