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

int main(){

  unsigned int *A;
  int num, i;

  scanf("%d", &num);
  
  A = malloc(sizeof(int)*num+1);

  for(i = 1; i <= num; i++){
    scanf("%d", &A[i]);
  }
  
  for(i = 1; i <= num; i++){
    printf("node %d: key = %d,", i, A[i]);

    if(i/2 != 0){
      printf(" ");
      printf("parent key = %d,", A[i/2]);
    }
    
    if(2*i <= num){
      printf(" ");
      printf("left key = %d,", A[2*i]);
    }
    if(2*i+1 <= num){
      printf(" ");
      printf("right key = %d,", A[2*i+1]);
    }

    printf("\n");
  }
  
  return 0;
}

