#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct TreeNode{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val):val(val),left(nullptr),right(nullptr){};
};
int ans = 0;
int dfs(TreeNode* root,int tar,int &dist){
if(!root)return 0;
int ld,rd = -1;
int lh = dfs(root->left,tar,ld);
int rh = dfs(root->left,tar,rd);
if(root->val == tar){
dist = 0;
ans = max(ans,max(lh,rh));
}else if(ld != -1){
dist = ld+1;
ans = max(ans,rh);
}else if(rd != -1){
dist = rd+1;
ans = max(ans,lh);
}
return 1+max(lh,rh);
}
int burn(TreeNode* root,int tar){
if(!root)return 0;
ans = 0;
int dist = -1;
dfs(root,tar,dist);
return ans;
}
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 val;cin>>val;
cout<<burn(root,val);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCnN0cnVjdCBUcmVlTm9kZXsKCWludCB2YWw7CglUcmVlTm9kZSogbGVmdDsKCVRyZWVOb2RlKiByaWdodDsKCQoJVHJlZU5vZGUoaW50IHZhbCk6dmFsKHZhbCksbGVmdChudWxscHRyKSxyaWdodChudWxscHRyKXt9Owp9OwppbnQgYW5zID0gMDsKaW50IGRmcyhUcmVlTm9kZSogcm9vdCxpbnQgdGFyLGludCAmZGlzdCl7CglpZighcm9vdClyZXR1cm4gMDsKCQoJaW50IGxkLHJkID0gLTE7CgkKCWludCBsaCA9IGRmcyhyb290LT5sZWZ0LHRhcixsZCk7CglpbnQgcmggPSBkZnMocm9vdC0+bGVmdCx0YXIscmQpOwoJCglpZihyb290LT52YWwgID09IHRhcil7CgkJZGlzdCA9IDA7CgkJYW5zID0gbWF4KGFucyxtYXgobGgscmgpKTsKCX1lbHNlIGlmKGxkICE9IC0xKXsKCQlkaXN0ID0gbGQrMTsKCQlhbnMgPSBtYXgoYW5zLHJoKTsKCX1lbHNlIGlmKHJkICE9ICAtMSl7CgkJZGlzdCA9IHJkKzE7CgkJYW5zID0gbWF4KGFucyxsaCk7Cgl9CglyZXR1cm4gMSttYXgobGgscmgpOwp9CmludCBidXJuKFRyZWVOb2RlKiByb290LGludCB0YXIpewoJaWYoIXJvb3QpcmV0dXJuIDA7CglhbnMgPSAwOwoJaW50IGRpc3QgPSAtMTsKCWRmcyhyb290LHRhcixkaXN0KTsKCXJldHVybiBhbnM7Cn0KVHJlZU5vZGUqIGJ1aWxkVHJlZSgpewoJaW50IHg7IGNpbj4+eDsKCWlmKHggPT0gLTEpcmV0dXJuIG51bGxwdHI7OwoJCglUcmVlTm9kZSogcm9vdCA9IG5ldyBUcmVlTm9kZSh4KTsKCXF1ZXVlPFRyZWVOb2RlKj5xOwoJcS5wdXNoKHJvb3QpOwoJCgl3aGlsZSghcS5lbXB0eSgpKXsKCQlhdXRvIHUgPSBxLmZyb250KCk7CgkJcS5wb3AoKTsKCQkKCQlpZihjaW4+PnggJiYgeCE9LTEpewoJCQl1LT5sZWZ0ID0gbmV3IFRyZWVOb2RlKHgpOwoJCQlxLnB1c2godS0+bGVmdCk7CgkJfQoJCQoJCQlpZihjaW4+PnggJiYgeCE9LTEpewoJCQl1LT5yaWdodCA9IG5ldyBUcmVlTm9kZSh4KTsKCQkJcS5wdXNoKHUtPnJpZ2h0KTsKCQl9Cgl9CglyZXR1cm4gcm9vdDsKfQoKaW50IG1haW4oKSB7ClRyZWVOb2RlKiByb290ID0gYnVpbGRUcmVlKCk7CmludCB2YWw7Y2luPj52YWw7CmNvdXQ8PGJ1cm4ocm9vdCx2YWwpOwoKCglyZXR1cm4gMDsKfQ==