#include<stdio.h>
#include<stdlib.h>
int H[2000000000];

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

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

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

void print(int *H,int i,int n){
  int l,r,p;
  l=left(i);
  r=right(i);
  p=parent(i);
  printf("node %d: key = %d, ",i,H[i]);
  if(i==1){
    if(l<=n){
      printf("left key = %d, ",H[l]);
}
    if(r<=n){
      printf("right key = %d, ",H[r]);
}

}
  else {
    if(p<=n){
      printf("parent key = %d, ",H[p]);
}
    if(l<=n){
      printf("left key = %d, ",H[l]);
    }
    if(r<=n){
      printf("right key = %d, ",H[r]);
    }


}
  printf("\n");
}

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

  return 0;
}

