#include<stdio.h>
#include<stdlib.h>
struct node{
    int data;
    struct node* left;
    struct node*right;
};
struct node* create(int value){
    struct node* newnode= (struct node*)malloc(sizeof(struct node));
    newnode->data=value;
    newnode->left = newnode-> right= NULL;
}
struct node* insert(struct node* root, int value){
    if(root==NULL)
        return create(value);
    if(value< root->data)
    root->left= insert(root->left,value);
    else if(value> root->data)
    root->right= insert(root->right,value);
    return root;
}
 struct node* min(struct node* root){
        while(root->left!=NULL)
        root=root->left;
 
    return root;
    }
struct node* delete(struct node* root, int key){
    if(root==NULL)
        return NULL;
    
    if(key<root->data)
    root->left= delete(root->left,key);
    else if(key>root->data)
    root->right= delete(root->right,key);
    else{
        if(root->left=NULL){
            struct node* temp =root->right;
            free(root);
            return temp;
        }
       
}
void pre(struct node*root){
    if(root!=NULL){
        printf("%d ",root->data);
        pre(root->left);
        pre(root->right);
    }
}
int valid(int  n){
    return(n>= && n<=20);
}
int main(){
    int n,a;
    if(scanf("%d %d", &n,&a) !=2 || !valid(n)){
        printf("invalid input");
        return 0;
    }
    root =insert(root,a);
    pre("root");
    printf("\n");
    return 0;
}


    
}