#include <stdio.h>

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


int main(){
int i,n,A[251],p,r,l;

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]);


if(i>1) {
p=parent(i);
printf("parent key = %d, ",A[p]);
}


if(n>=2*i){
l=left(i);

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

if(n>=2*i+1) {
r=right(i);
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;
    
}
  