#include <bits/stdc++.h>
using namespace std;
class Node{
public:
int data;
Node*left;
Node*right;
Node(int d){
data = d;
left = NULL;
right = NULL;
}
};
// this is same as bfs
Node* buildTree(){
queue<Node*>q;
int d;cin>>d;
// if -1 return null
if(d==-1)return NULL;
// else make node and push to queue
Node*head=new Node(d);
q.push(head);
int lc,rc;
// now till the queue is not empty pop and push the children if next input is not -1
while(!q.empty()){
Node*f=q.front();
q.pop();
cin>>lc>>rc;
if(lc!=-1){
f->left=new Node(lc);
q.push(f->left);
}
if(rc!=-1){
f->right=new Node(rc);
q.push(f->right);
}
}
// finally return head
return head;
}
void print_left_side(Node*root, int level, int &maxlevel){
if(root==NULL){
return;
}
if(maxlevel<level){
cout<<root->data<<" ";
maxlevel = level;
}
print_left_side(root->left, level+1, maxlevel);
print_left_side(root->right, level+1, maxlevel);
}
int main(){
Node*root = buildTree();
int maxLevel = -1;
int maxLevel2 = -1;
print_left_side(root,0,maxLevel2);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBOb2RlewogICAgcHVibGljOgogICAgICAgIGludCBkYXRhOwogICAgICAgIE5vZGUqbGVmdDsKICAgICAgICBOb2RlKnJpZ2h0OwogICAgTm9kZShpbnQgZCl7CiAgICAgICAgZGF0YSA9IGQ7CiAgICAgICAgbGVmdCA9IE5VTEw7CiAgICAgICAgcmlnaHQgPSBOVUxMOwogICAgfQp9OwoKLy8gdGhpcyBpcyBzYW1lIGFzIGJmcwoKTm9kZSogYnVpbGRUcmVlKCl7CgpxdWV1ZTxOb2RlKj5xOwoKaW50IGQ7Y2luPj5kOwoKLy8gaWYgLTEgcmV0dXJuIG51bGwKCmlmKGQ9PS0xKXJldHVybiBOVUxMOwoKLy8gZWxzZSBtYWtlIG5vZGUgYW5kIHB1c2ggdG8gcXVldWUKCk5vZGUqaGVhZD1uZXcgTm9kZShkKTsKCnEucHVzaChoZWFkKTsKCmludCBsYyxyYzsKCi8vIG5vdyB0aWxsIHRoZSBxdWV1ZSBpcyBub3QgZW1wdHkgcG9wIGFuZCBwdXNoIHRoZSBjaGlsZHJlbiBpZiBuZXh0IGlucHV0IGlzIG5vdCAtMQoKd2hpbGUoIXEuZW1wdHkoKSl7CgogICAgTm9kZSpmPXEuZnJvbnQoKTsKCiAgICBxLnBvcCgpOwoKICAgIGNpbj4+bGM+PnJjOwoKICAgIGlmKGxjIT0tMSl7CgogICAgICAgIGYtPmxlZnQ9bmV3IE5vZGUobGMpOwoKICAgICAgICBxLnB1c2goZi0+bGVmdCk7CgogICAgfQoKICAgIGlmKHJjIT0tMSl7CgogICAgICAgIGYtPnJpZ2h0PW5ldyBOb2RlKHJjKTsKCiAgICAgICAgcS5wdXNoKGYtPnJpZ2h0KTsKCiAgICB9Cgp9CgovLyBmaW5hbGx5IHJldHVybiBoZWFkCgpyZXR1cm4gaGVhZDsKfQoKCnZvaWQgcHJpbnRfbGVmdF9zaWRlKE5vZGUqcm9vdCwgaW50IGxldmVsLCBpbnQgJm1heGxldmVsKXsKICAgIGlmKHJvb3Q9PU5VTEwpewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZihtYXhsZXZlbDxsZXZlbCl7CiAgICAgICAgY291dDw8cm9vdC0+ZGF0YTw8IiAiOwogICAgICAgIG1heGxldmVsID0gbGV2ZWw7CiAgICB9CgogICAgcHJpbnRfbGVmdF9zaWRlKHJvb3QtPmxlZnQsIGxldmVsKzEsIG1heGxldmVsKTsKICAgIHByaW50X2xlZnRfc2lkZShyb290LT5yaWdodCwgbGV2ZWwrMSwgbWF4bGV2ZWwpOwp9CgoKaW50IG1haW4oKXsKICAgIE5vZGUqcm9vdCA9IGJ1aWxkVHJlZSgpOwogICAgaW50IG1heExldmVsID0gLTE7CiAgICBpbnQgbWF4TGV2ZWwyID0gLTE7CiAgICBwcmludF9sZWZ0X3NpZGUocm9vdCwwLG1heExldmVsMik7Cn0=