#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 dep(TreeNode* root){
int d = 0;
while(root){
root = root->left;
d++;
}
return d;
}
int countNodes(TreeNode* root) {
if(!root)return 0;
int l = dep(root->left);
int r = dep(root->right);
if(l == r){
return (1<<l)+countNodes(root->right);
}else{
return (1<<r)+countNodes(root->left);
}
// return 1+max(l,r);
}
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();
cout<<countNodes(root);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCnN0cnVjdCBUcmVlTm9kZXsKCWludCB2YWw7CglUcmVlTm9kZSogbGVmdDsKCVRyZWVOb2RlKiByaWdodDsKCQoJVHJlZU5vZGUoaW50IHZhbCk6dmFsKHZhbCksbGVmdChudWxscHRyKSxyaWdodChudWxscHRyKXt9Owp9OwoKaW50IGRlcChUcmVlTm9kZSogcm9vdCl7CiAgICBpbnQgZCA9IDA7CiAgICB3aGlsZShyb290KXsKICAgICAgICByb290ID0gcm9vdC0+bGVmdDsKICAgICAgICBkKys7CiAgICB9CiAgICByZXR1cm4gZDsKfQogICAgaW50IGNvdW50Tm9kZXMoVHJlZU5vZGUqIHJvb3QpIHsKICAgICAgICBpZighcm9vdClyZXR1cm4gMDsKICAgICAgICBpbnQgbCA9IGRlcChyb290LT5sZWZ0KTsKICAgICAgICBpbnQgciA9IGRlcChyb290LT5yaWdodCk7CgogICAgICAgIGlmKGwgPT0gcil7CiAgICAgICAgICAgIHJldHVybiAoMTw8bCkrY291bnROb2Rlcyhyb290LT5yaWdodCk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIHJldHVybiAoMTw8cikrY291bnROb2Rlcyhyb290LT5sZWZ0KTsKICAgICAgICB9CiAgICAgICAvLyByZXR1cm4gMSttYXgobCxyKTsKICAgIH0KClRyZWVOb2RlKiBidWlsZFRyZWUoKXsKCWludCB4OyBjaW4+Png7CglpZih4ID09IC0xKXJldHVybiBudWxscHRyOzsKCQoJVHJlZU5vZGUqIHJvb3QgPSBuZXcgVHJlZU5vZGUoeCk7CglxdWV1ZTxUcmVlTm9kZSo+cTsKCXEucHVzaChyb290KTsKCQoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJYXV0byB1ID0gcS5mcm9udCgpOwoJCXEucG9wKCk7CgkJCgkJaWYoY2luPj54ICYmIHghPS0xKXsKCQkJdS0+bGVmdCA9IG5ldyBUcmVlTm9kZSh4KTsKCQkJcS5wdXNoKHUtPmxlZnQpOwoJCX0KCQkKCQkJaWYoY2luPj54ICYmIHghPS0xKXsKCQkJdS0+cmlnaHQgPSBuZXcgVHJlZU5vZGUoeCk7CgkJCXEucHVzaCh1LT5yaWdodCk7CgkJfQoJfQoJcmV0dXJuIHJvb3Q7Cn0KCmludCBtYWluKCkgewpUcmVlTm9kZSogcm9vdCA9IGJ1aWxkVHJlZSgpOwpjb3V0PDxjb3VudE5vZGVzKHJvb3QpOwoKCglyZXR1cm4gMDsKfQ==