#include<bits/stdc++.h>
using namespace std;
class node
{
public:
int d1,d2;
node* left;
node* right;
node(int x, int y)
{
d1 = x;
d2 = y;
left = NULL;
right = NULL;
}
};
node* buildTree()
{
int x,y;
cin >> x;
if(x == -1) return NULL;
cin >> y;
node* root = new node(x,y);
root->left = buildTree();
root->right = buildTree();
return root;
}
void preorder(node* root)
{
if(root == NULL) return;
cout << root->d1 << " " << root->d2 << endl;
preorder(root->left);
preorder(root->right);
}
void solve()
{
node* root = buildTree();
preorder(root);
// swap(*root->left,*root->right);
// swap(root->left,root->right);
}
int main() {
int t;
t = 1;
// cin >> t;
while(t--)
{
solve();
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIG5vZGUKewpwdWJsaWM6CiAgICBpbnQgZDEsZDI7CiAgICBub2RlKiBsZWZ0OwogICAgbm9kZSogcmlnaHQ7CgogICAgbm9kZShpbnQgeCwgaW50IHkpCiAgICB7CiAgICAgIGQxID0geDsKICAgICAgZDIgPSB5OwogICAgICBsZWZ0ID0gTlVMTDsKICAgICAgcmlnaHQgPSBOVUxMOwogICAgfQp9OwoKCgpub2RlKiBidWlsZFRyZWUoKQp7CiAgaW50IHgseTsKICBjaW4gPj4geDsKCiAgaWYoeCA9PSAtMSkgcmV0dXJuIE5VTEw7CgogIGNpbiA+PiB5OwoKICBub2RlKiByb290ID0gbmV3IG5vZGUoeCx5KTsKCiAgcm9vdC0+bGVmdCAgPSBidWlsZFRyZWUoKTsKICByb290LT5yaWdodCA9IGJ1aWxkVHJlZSgpOwoKICByZXR1cm4gcm9vdDsKfQoKdm9pZCBwcmVvcmRlcihub2RlKiByb290KQp7CiAgaWYocm9vdCA9PSBOVUxMKSByZXR1cm47CgoKICBjb3V0IDw8IHJvb3QtPmQxIDw8ICIgIiA8PCByb290LT5kMiA8PCBlbmRsOwogIHByZW9yZGVyKHJvb3QtPmxlZnQpOwogIHByZW9yZGVyKHJvb3QtPnJpZ2h0KTsKfQoKCgp2b2lkIHNvbHZlKCkKeyAKICAgICAgIG5vZGUqIHJvb3QgPSBidWlsZFRyZWUoKTsKCiAgICAgICBwcmVvcmRlcihyb290KTsKCiAgIC8vICAgICBzd2FwKCpyb290LT5sZWZ0LCpyb290LT5yaWdodCk7CiAgLy8gICAgICBzd2FwKHJvb3QtPmxlZnQscm9vdC0+cmlnaHQpOwoKCiAgICAgICAKfQppbnQgbWFpbigpIHsKICAgIAogICAgaW50IHQ7CiAgICB0ID0gMTsKIC8vICAgY2luID4+IHQ7CiAgICAKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==