#include <iostream>
??
using namespace std;
??
struct Node{
????int ke;
????Node *par;
????Node *rig;
????Node *lef;
};
??
Node *ro,*ni;
??????
void insert(int k){
????Node *a=ro, *b=ni, *c;
??
????c = new Node;
????c->ke=k;
????c->rig=c->lef=ni;
??
????while(a!=ni){
????????b=a;
????????if(c->ke < a->ke) a=a->lef;
????????else a=a->rig;
????}
????c->par = b;
??
????if(b==ni) ro=c;
????else if(c->ke < b->ke) b->lef=c;
????else b->rig=c;
}
??
void preo(Node *r){
????if(r==ni) return;
????cout << " " << r->ke;
????preo(r->lef);
????preo(r->rig);?? 
}
??
void ino(Node *r){
????if(r==ni) return;
????ino(r->lef);
????cout << " " << r->ke;
????ino(r->rig);
}
??
int main(){
????int x,y;
????string str;
??
????cin >> x;
????for(int i=0;i<x;i++){
????????cin >> str;
????????if(str=="insert"){
????????????cin >> y;
????????????insert(y);
????????}
????????else if(str=="print"){
????????????ino(ro);
????????????cout << endl;
????????????preo(ro);
????????????cout << endl;
????????}
????}
??
????return 0;
}