#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node{
   int r;
  int l;
  int p;
  int key;
};
typedef struct node  Node;
#define NIL NULL
Node root[250];

int main(){
  int n,i,x;
  Node t;
  char com[20];;
  scanf("%d",&n);
  for(i=1;i<=n;i++){
    scanf("%d",&root[i].key);
    

  }
  
  for(i=1;i<=n;i++){
    if(i!=1){
      root[i].p=i/2;
    }
    
    root[i].l=2*i;
    root[i].r=2*i+1;
  }
  for(i=1;i<=n;i++){

    printf("node %d: key = %d, ",i,root[i].key);
    if(i!=1)printf("parent key = %d, ",root[root[i].p].key);
    if(root[root[i].l].key!=NIL) printf("left key = %d, ",root[root[i].l].key);
    if(root[root[i].r].key!=NIL) printf("right key = %d, ",root[root[i].r].key);
    printf("\n");
  }
  return 0;
}


