#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Node {
    int key;
    struct Node *rig, *lef, *parent;
};

struct Node *root,*NIL;

void insert(int);
void inorder(struct Node *);
struct Node * find(struct Node *,int k);
void preorder(struct Node *);


int main(){
    int n,i,x;
    char input[6];
    char inse[7] = "insert";
    char prin[7] =  "print";
    
    scanf("%d",&n);
    
    for(i=0;i<n;i++){
        scanf("%s",input);
        if(input[0] == 'f'){
            scanf("%d",&x);
            struct Node *t = find(root,x);
            if(t != NIL) printf("yes\n");
            else printf("no\n");
        }else if(strcmp(input,inse) == 0){
            scanf("%d",&x);
            insert(x);
        }else if(strcmp(input,prin) == 0){
            inorder(root);
            printf("\n");
            preorder(root);
            printf("\n");
        }
        }
    return 0;
    }

void insert(int k){
    struct Node *y = NIL;
    struct Node *x = root;
    struct Node *z;
    
    z = (struct Node *)malloc(sizeof(struct Node));
    z->key = k;
    z->lef = NIL;
    z->rig = NIL;
    
    while(x != NIL){
        y = x;
        if(z->key < x->key){
            x = x->lef;
        }else {
            x = x->rig;
        }
    }
    
    z->parent = y;
    if(y == NIL){
        root = z;
    }else {
        if(z->key < y->key){
            y->lef = z;
        }else{
            y->rig = z;
        }
    }
}

void inorder(struct Node *u){
    if(u == NIL) return;
    inorder(u->lef);
    printf(" %d",u->key);
    inorder(u->rig);
}

struct Node * find(struct Node *u,int k){
    while(u != NIL && k != u->key){
        if(k < u->key ) u = u->lef;
        else u = u->rig;
    }
    return u;
}

void preorder(struct Node *u){
    if(u == NIL) return;
    printf(" %d",u->key);
    preorder(u->lef);
    preorder(u->rig);
}

