#include<iostream>
#include<string>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<math.h>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<stdio.h>
#include<set>
#include<cstring>
#include<cstdlib>
using namespace std;
struct node{
int va;
node* left;
node* right;
node():left(nullptr),right(nullptr),va(NULL){}
};
node *solve(node *head,int a){
node *ptr=new node;
ptr->va=a;
if(head->va==0){
return ptr;
}
while(head->va!=0){
if(head->va>a){
head=head->left;
}
else if(head->va<a){
head=head->right;
}
}
head=ptr;
return ptr;
}
void print(node *root){
if(root->va==0){
return;
}
print(root->left);
print(root->right);
cout<<root->va<<endl;
}
int main(){
node *root,*head;
int a;
int i=0;
while(cin>>a){
head=solve(root,a);
if(i==0){
root=head;
}
i++;
}
print(root);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxzdGFjaz4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c2V0PgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxjc3RkbGliPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3Qgbm9kZXsKaW50IHZhOwpub2RlKiBsZWZ0Owpub2RlKiByaWdodDsKbm9kZSgpOmxlZnQobnVsbHB0cikscmlnaHQobnVsbHB0ciksdmEoTlVMTCl7fQp9Owpub2RlICpzb2x2ZShub2RlICpoZWFkLGludCBhKXsKCW5vZGUgKnB0cj1uZXcgbm9kZTsKcHRyLT52YT1hOwppZihoZWFkLT52YT09MCl7CglyZXR1cm4gcHRyOwp9CndoaWxlKGhlYWQtPnZhIT0wKXsKCWlmKGhlYWQtPnZhPmEpewoJCWhlYWQ9aGVhZC0+bGVmdDsKCX0KCWVsc2UgaWYoaGVhZC0+dmE8YSl7CgloZWFkPWhlYWQtPnJpZ2h0OwoJfQp9CmhlYWQ9cHRyOwoJcmV0dXJuIHB0cjsKfQp2b2lkIHByaW50KG5vZGUgKnJvb3QpewoJaWYocm9vdC0+dmE9PTApewoJcmV0dXJuOwoJfQoJcHJpbnQocm9vdC0+bGVmdCk7CglwcmludChyb290LT5yaWdodCk7Cgljb3V0PDxyb290LT52YTw8ZW5kbDsKfQppbnQgbWFpbigpewoJbm9kZSAqcm9vdCwqaGVhZDsKCglpbnQgYTsKCWludCBpPTA7Cgl3aGlsZShjaW4+PmEpewoJaGVhZD1zb2x2ZShyb290LGEpOwoJaWYoaT09MCl7Cglyb290PWhlYWQ7Cgl9CglpKys7Cgl9CglwcmludChyb290KTsKCXJldHVybiAwOwp9IA==