#include<stdio.h>
int parent(int);
int left(int);
int right(int);
int main(){
  int i,n;
  scanf("%d",&n);
  int H[n];
  for(i=0;i<n;i++){
    scanf("%d",&H[i]);
  }
  for(i=0;i<n;i++){
    printf("node %d: key = %d, ",i+1,H[i]);
    if(i!=0)printf("parent key = %d, ",H[parent(i+1)-1]);
    if(2*(i+1)<=n)printf("left key = %d, ",H[left(i+1)-1]);
    if(2*(i+1)+1<=n)printf("right key = %d, ",H[right(i+1)-1]);
    printf("\n");
  }
  return 0;
}
int parent(int k){
  return (int)((double)k/(double)2);
}
int left(int k){
  return 2*k;
}
int right(int k){
  return 2*k+1;
}
