#include <stdio.h>
int parent(int);
int left(int);
int right(int);
 
int main(){
  int i,a,A[251];
  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]);
    if(parent(i) >= 1){printf("parent key = %d, ",A[parent(i)]);}
    if(left(i) <= a){printf("left key = %d, ",A[left(i)]);}
    if(right(i) <= a){printf("right key = %d, ",A[right(i)]);}
    printf("\n");
  }
   return 0;
}
int parent(int p){
  return p/2;
}
int left(int l){
  return l*2;
}
int right(int r){
  return (r*2)+1;
}