#include <stdio.h>

#define N 250

int parent(int);
int left(int);
int right(int);

main(){

  int a,p,l,r,i,A[N];

  scanf("%d",&a);
  for(i = 1; i <= a; i++){
    scanf("%d",&A[i]);
  }


  for(i = 1; i <= a; i++){
    p = parent(i);
    l = left(i);
    r = right(i);
    printf("node %d key = %d, :",i,A[i]);

    if(i  != 1){
 printf("parent key = %d, ",A[p]);
 if(l >= a  && r >= a) printf("\n");
    }
    if(l <= a){
      printf("left key = %d, ",A[l]);
      if(r > a) printf("\n");
    }
    if(r <= a) printf("right key = %d,\n",A[r]);
  }
 

  return 0;
}

int parent(int i){
  return i / 2;
}



int left(int i){
  return 2 * i;
}


int right(int i){
  return 2 * i +1;
}