#include<stdio.h>
typedef struct {
  int left;
  int right;
  int parent;
  int key;
} Node;

int a[250];
 
 


void print(int,Node[]);
void inHeap(int);
int main(){
   int heapSize;
 int i;
  scanf("%d",&heapSize);
  for(i=0;i<heapSize;i++){
    scanf("%d",&a[i]);
  }

  inHeap(heapSize);
 
  return 0;
}
int left(int i){
  return 2*i;
}
int right(int i){
  return 2*i+1;
}
int parent(int i){
  return i/2;
}
void inHeap(int heapSize){
  int i;
 Node n[250];
  for(i=0;i<heapSize;i++){

    n[i].key=a[i];
    n[left[i]].left=a[i+1];
    n[right[i]].right=a[i+2];
    
    if(i!=0){
      n[parent[i]].parent=a[i];
    } else{
      n[i].parent=0;
    }
  }
  print(heapSize,n);
}
void print(int heapSize, Node n[]){
  int i;
  for(i=0;i<heapSize;i++){
    printf("node %d: key = %d, ",i+1,n[i].key);
  }


}