#include <stdio.h>

#define MAX 250

int h[MAX];

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

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

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

main(){
  
  int i, n;
  
  scanf("%d", &n);
  
  for(i = 1; i <= n; i++) scanf("%d", &h[i]);
      
  for(i = 1; i <= n; i++){
    
    printf("node %d: key = %d, ", i, h[i]);
    
    if(i != 1) printf("parent key = %d, ", h[parent(i)]);
    
    if(2 * i <= n) printf("left key = %d, ", h[left(i)]);  
    
    if(2 * i + 1 <= n) printf("right key = %d, ", h[right(i)]);
    
    printf("\n");
    
  }
  
  return 0;
  
}