#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){};
};
bool sum(TreeNode* root){
if(!root)return true;
if(!root->left && !root->right)return true;
int left = root->left? root->left->val : 0;
int right = root->right? root->right->val : 0;
return (root->val == left+right)&&sum(root->left)&&sum(root->right);
}
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();
bool ans = sum(root);
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCnN0cnVjdCBUcmVlTm9kZXsKCWludCB2YWw7CglUcmVlTm9kZSogbGVmdDsKCVRyZWVOb2RlKiByaWdodDsKCQoJVHJlZU5vZGUoaW50IHZhbCk6dmFsKHZhbCksbGVmdChudWxscHRyKSxyaWdodChudWxscHRyKXt9Owp9OwoKYm9vbCBzdW0oVHJlZU5vZGUqIHJvb3QpewogIGlmKCFyb290KXJldHVybiB0cnVlOwogIAogIGlmKCFyb290LT5sZWZ0ICYmICFyb290LT5yaWdodClyZXR1cm4gdHJ1ZTsKICAKICBpbnQgbGVmdCA9IHJvb3QtPmxlZnQ/IHJvb3QtPmxlZnQtPnZhbCA6IDA7CiAgaW50IHJpZ2h0ID0gcm9vdC0+cmlnaHQ/IHJvb3QtPnJpZ2h0LT52YWwgOiAwOwogIAogIHJldHVybiAocm9vdC0+dmFsID09IGxlZnQrcmlnaHQpJiZzdW0ocm9vdC0+bGVmdCkmJnN1bShyb290LT5yaWdodCk7Cn0KVHJlZU5vZGUqIGJ1aWxkVHJlZSgpewoJaW50IHg7IGNpbj4+eDsKCWlmKHggPT0gLTEpcmV0dXJuIG51bGxwdHI7OwoJCglUcmVlTm9kZSogcm9vdCA9IG5ldyBUcmVlTm9kZSh4KTsKCXF1ZXVlPFRyZWVOb2RlKj5xOwoJcS5wdXNoKHJvb3QpOwoJCgl3aGlsZSghcS5lbXB0eSgpKXsKCQlhdXRvIHUgPSBxLmZyb250KCk7CgkJcS5wb3AoKTsKCQkKCQlpZihjaW4+PnggJiYgeCE9LTEpewoJCQl1LT5sZWZ0ID0gbmV3IFRyZWVOb2RlKHgpOwoJCQlxLnB1c2godS0+bGVmdCk7CgkJfQoJCQoJCQlpZihjaW4+PnggJiYgeCE9LTEpewoJCQl1LT5yaWdodCA9IG5ldyBUcmVlTm9kZSh4KTsKCQkJcS5wdXNoKHUtPnJpZ2h0KTsKCQl9Cgl9CglyZXR1cm4gcm9vdDsKfQppbnQgbWFpbigpIHsKVHJlZU5vZGUqIHJvb3QgPSBidWlsZFRyZWUoKTsKYm9vbCBhbnMgPSBzdW0ocm9vdCk7CmNvdXQ8PGFuczw8ZW5kbDsKCXJldHVybiAwOwp9