#include <iostream>
#include <vector>
using namespace std;
struct Node {
Node(int v) : val(v) {}
int val;
vector<Node*> children;
};
Node *readTreeNode() {
int val, children;
cin >> val >> children;
Node *node = new Node(val);
for (int i = 0; i<children; ++i)
node->children.push_back(readTreeNode());
return node;
}
int main() {
Node *root = readTreeNode();
// Do the cleanup..
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUgewogIE5vZGUoaW50IHYpIDogdmFsKHYpIHt9CiAgaW50IHZhbDsKICB2ZWN0b3I8Tm9kZSo+IGNoaWxkcmVuOwp9OwoKTm9kZSAqcmVhZFRyZWVOb2RlKCkgewogIGludCB2YWwsIGNoaWxkcmVuOwogIGNpbiA+PiB2YWwgPj4gY2hpbGRyZW47CiAgTm9kZSAqbm9kZSA9IG5ldyBOb2RlKHZhbCk7CiAgZm9yIChpbnQgaSA9IDA7IGk8Y2hpbGRyZW47ICsraSkKICAgIG5vZGUtPmNoaWxkcmVuLnB1c2hfYmFjayhyZWFkVHJlZU5vZGUoKSk7CiAgcmV0dXJuIG5vZGU7Cn0KCmludCBtYWluKCkgewogIE5vZGUgKnJvb3QgPSByZWFkVHJlZU5vZGUoKTsKICAvLyBEbyB0aGUgY2xlYW51cC4uCiAgcmV0dXJuIDA7Cn0=