#include <bits/stdc++.h>
using namespace std;
struct TreeNode{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val):left(nullptr),right(nullptr),val(val){};
};
int height(TreeNode* root){
int cnt = 0;
if (root == nullptr){
return 0;
}
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
int size = q.size();
for(int i = 0;i<size;i++){
auto u = q.front();
q.pop();
if(u->left){
q.push(u->left);
}
if(u->right){
q.push(u->right);
}
}
cnt++;
}
return cnt;
}
TreeNode* buildTree(){
int x; cin >> x;
if(x==-1)return nullptr;
TreeNode* root = new TreeNode (x);
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
auto u = q.front();
q.pop();
if(cin>>x && x!=-1){
u->left= new TreeNode(x);
q.push(u->left);
}
if(cin>>x && x!=-1){
u->right= new TreeNode(x);
q.push(u->right);
}
}
return root;
}
int main() {
TreeNode* root = buildTree();
int h = height(root);
cout<<h;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBUcmVlTm9kZXsKCWludCB2YWw7CglUcmVlTm9kZSogbGVmdDsKCVRyZWVOb2RlKiByaWdodDsKCVRyZWVOb2RlKGludCB2YWwpOmxlZnQobnVsbHB0cikscmlnaHQobnVsbHB0ciksdmFsKHZhbCl7fTsKfTsKaW50IGhlaWdodChUcmVlTm9kZSogcm9vdCl7CglpbnQgY250ID0gMDsKCWlmIChyb290ID09IG51bGxwdHIpewoJCXJldHVybiAwOwoJfQoJCglxdWV1ZTxUcmVlTm9kZSo+cTsKCXEucHVzaChyb290KTsKCQoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJaW50IHNpemUgPSBxLnNpemUoKTsKCQlmb3IoaW50IGkgPSAwO2k8c2l6ZTtpKyspewoJCWF1dG8gdSA9IHEuZnJvbnQoKTsKCQlxLnBvcCgpOwoJCQoJCWlmKHUtPmxlZnQpewoJCQlxLnB1c2godS0+bGVmdCk7CgkJfQoJCWlmKHUtPnJpZ2h0KXsKCQkJcS5wdXNoKHUtPnJpZ2h0KTsKCQl9CgkJfQoJCWNudCsrOwoJfQoJcmV0dXJuIGNudDsKfQpUcmVlTm9kZSogYnVpbGRUcmVlKCl7CglpbnQgeDsgY2luID4+IHg7CglpZih4PT0tMSlyZXR1cm4gbnVsbHB0cjsKCVRyZWVOb2RlKiByb290ID0gbmV3IFRyZWVOb2RlICh4KTsKCXF1ZXVlPFRyZWVOb2RlKj5xOwoJcS5wdXNoKHJvb3QpOwoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJYXV0byB1ID0gcS5mcm9udCgpOwoJCXEucG9wKCk7CgkJCgkJaWYoY2luPj54ICYmIHghPS0xKXsKCQkJdS0+bGVmdD0gbmV3IFRyZWVOb2RlKHgpOwoJCQlxLnB1c2godS0+bGVmdCk7CgkJfQoJCQlpZihjaW4+PnggJiYgeCE9LTEpewoJCQl1LT5yaWdodD0gbmV3IFRyZWVOb2RlKHgpOwoJCQlxLnB1c2godS0+cmlnaHQpOwoJCX0KCX0KCXJldHVybiByb290Owp9CmludCBtYWluKCkgewoJVHJlZU5vZGUqIHJvb3QgPSBidWlsZFRyZWUoKTsKCWludCBoID0gaGVpZ2h0KHJvb3QpOwoJY291dDw8aDsKCXJldHVybiAwOwp9