#include <bits/stdc++.h>
using namespace std;
struct TreeNode{
int val;
TreeNode* right;
TreeNode* left;
TreeNode(int val):left(nullptr),right(nullptr),val(val){};
};
bool sym(TreeNode* left,TreeNode* right){
if(left == nullptr && right == nullptr)return true;
if(left == nullptr || right == nullptr)return false;
if(left->val!=right->val)return false;
return sym(left->left,right->right)&&sym(left->right,right->left);
}
bool isSymm(TreeNode* root){
if(root == nullptr)return true;
return sym(root->left,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 = isSymm(root);
cout<<ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBUcmVlTm9kZXsKCWludCB2YWw7CglUcmVlTm9kZSogcmlnaHQ7CglUcmVlTm9kZSogbGVmdDsKCVRyZWVOb2RlKGludCB2YWwpOmxlZnQobnVsbHB0cikscmlnaHQobnVsbHB0ciksdmFsKHZhbCl7fTsKfTsKYm9vbCBzeW0oVHJlZU5vZGUqIGxlZnQsVHJlZU5vZGUqIHJpZ2h0KXsKCWlmKGxlZnQgPT0gbnVsbHB0ciAmJiByaWdodCA9PSBudWxscHRyKXJldHVybiB0cnVlOwoJaWYobGVmdCA9PSBudWxscHRyIHx8IHJpZ2h0ID09IG51bGxwdHIpcmV0dXJuIGZhbHNlOwoJCglpZihsZWZ0LT52YWwhPXJpZ2h0LT52YWwpcmV0dXJuIGZhbHNlOwoJCglyZXR1cm4gc3ltKGxlZnQtPmxlZnQscmlnaHQtPnJpZ2h0KSYmc3ltKGxlZnQtPnJpZ2h0LHJpZ2h0LT5sZWZ0KTsKfQpib29sIGlzU3ltbShUcmVlTm9kZSogcm9vdCl7CiAgCiAgaWYocm9vdCA9PSBudWxscHRyKXJldHVybiB0cnVlOwogIHJldHVybiBzeW0ocm9vdC0+bGVmdCxyb290LT5yaWdodCk7CiAgCn0KVHJlZU5vZGUqIGJ1aWxkVHJlZSgpewoJaW50IHg7Y2luPj54OwoJaWYoeD09LTEpcmV0dXJuIG51bGxwdHI7CglUcmVlTm9kZSogcm9vdCA9IG5ldyBUcmVlTm9kZSh4KTsKCQoJcXVldWU8VHJlZU5vZGUqPnE7CglxLnB1c2gocm9vdCk7CgkKCXdoaWxlKCFxLmVtcHR5KCkpewoJCWF1dG8gdSA9IHEuZnJvbnQoKTsKCQlxLnBvcCgpOwoJCQoJCWlmKGNpbj4+eCAmJiB4IT0tMSl7CgkJCXUtPmxlZnQgPSBuZXcgVHJlZU5vZGUoeCk7CgkJCXEucHVzaCh1LT5sZWZ0KTsKCQl9CgkJCgkJaWYoY2luPj54ICYmIHghPS0xKXsKCQkJdS0+cmlnaHQgPSBuZXcgVHJlZU5vZGUoeCk7CgkJCXEucHVzaCh1LT5yaWdodCk7CgkJfQoJfQoJcmV0dXJuIHJvb3Q7Cn0KaW50IG1haW4oKSB7CiAgICBUcmVlTm9kZSogcm9vdCA9IGJ1aWxkVHJlZSgpOwogICAKICAgICBib29sIGFucyA9IGlzU3ltbShyb290KTsKICAgICBjb3V0PDxhbnM7CiAgICAKCXJldHVybiAwOwp9