#include<stdio.h>
#include<math.h>

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

  for(i = 1; i <= a; i++){
    printf("node %d: key = %d, ", i, A[i]);
    j = parent(i);
    if(j <= a){
      printf("parent key = %d, ", A[parent(i)]);
    }
    j = left(i);
    if(j <= a){
      printf("left key = %d, ", A[j]);
    }
    j = right(i);
    if(j <= a){
      printf("right key = %d, ", A[j]);
    }
    printf("\n");
  }
}

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

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

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