#include<stdio.h>

int H[251];

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

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

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

int main(){
  int i,n,k;
  scanf("%d",&n);
  for(i=1;i<n+1;i++){
    scanf("%d",&H[i]);
  }

  for(i=1;i<n+1;i++){
    printf("node %d: ",i);
    printf("key = %d, ",H[i]);

    k=parent(i-i%2);
    if(k>0)
      printf("parent key = %d, ",H[k]);

    k=left(i);
    if(k<=n)
      printf("left key = %d, ",H[k]);

    k=right(i);
    if(k<=n)
      printf("right key = %d, ",H[k]);
    printf("\n");
  }
  return 0;
}