#include <stdio.h>
#include <stdlib.h>
struct node{
  struct node *right;
  struct node *left;
  struct node *parent;
  int key;
};
typedef struct node Node;

void insert(int);
void inorder(Node*);
void preorder(Node*);
   


Node *NIL,*root;
int main(){
  int N,i,v,t;
  char o[7];
  scanf("%d",&N);

  for(i=0;i<N;i++){
 
    scanf("%s",o);
    t=strcmp(o,"insert");

    if(t==0){
      scanf("%d",&v);
      insert(v);
    }
    else {
      inorder(root);
      printf("\n");
      preorder(root);
      printf("\n");
    }

  }
  return 0;
}

void insert(int k){

  Node *z;
  Node *x;
  Node *y;
  z=(Node *)malloc(sizeof(Node));

  z->key=k;
  z->left=NIL;
  z->right=NIL;
  y=NIL;
  x=root;
 
  while(x!=NIL){
    y=x;
    if( z->key < x->key )x=x->left;
    else x=x->right;
     
  }
  z->parent=y;


  if(y==NIL)root=z;
  else if(z->key < y->key) y->left=z;
    else y->right=z;

}

    void inorder(Node *u){

      if(u==NIL)return;
      inorder(u->left);
      printf(" %d",u->key);
      inorder(u->right);
    }

    void preorder(Node *u){

      if(u==NIL) return;
      printf(" %d",u->key);
      preorder(u->left);
      preorder(u->right);
    }