#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(A[i]);
printf("parent key = %d ",p);
}


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

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

if(n>=2*i+1) {
r=right(A[i]);
printf("right key = %d ",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;
    
}
  