#include <stdio.h>

#define H 250

int parent(int);
int left(int);
int right(int);

int main(){

 int i;
 int n;
 int p;
 int l;
 int r;
 int A[H];

 scanf("%d",&n);

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

 for(i=1;i<=n;i++){
 printf("node %d: key = %d, ",i,A[i]);

 p = parent(i);

 if(p!=0){
 printf("parent key = %d, ",A[p]);
 }

 l = left(i);

 if(l <= n){
 printf("left key = %d, ",A[l]);
 }

 r = right(i);

 if(r <= n){
 printf("right key = %d, ",A[r]);
 }

 printf("\n");
 }
 return 0;
}

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

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

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