#include<stdio.h>

int H;

typedef struct{
  int key,oya,sa,yuu;
}ki;

ki T[250];

int main(){
  int i;
  int A[500];

  for(i=0;i<500;i++){
    A[i]=-2000000001;
  }
  
  scanf("%d",&H);

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

  for(i=0;i<=H;i++){
    T[i].oya=T[i].key=T[i].sa=T[i].yuu=-2000000001;
  }
  
  T[0].key=A[1];
  T[0].sa=A[2];
  T[0].yuu=A[3];
  
  for(i=2;i<=H;i++){
    T[i-1].key=A[i];
    if(i%2==0)T[i-1].oya=A[i/2];
    else T[i-1].oya=A[(i-1)/2];
    T[i-1].sa=A[2*i];
    T[i-1].yuu=A[2*i+1];
  }

  for(i=1;i<=H;i++){
    printf("node %d:",i);
    printf(" key = %d,",T[i-1].key);
    if(T[i-1].oya!=-2000000001)printf(" parent key = %d,",T[i-1].oya);
    if(T[i-1].sa!=-2000000001)printf(" left key = %d,",T[i-1].sa);
    if(T[i-1].yuu!=-2000000001)printf(" right key = %d,",T[i-1].yuu);
    printf(" \n");
  }
    
  return 0;
}

