#include <stdio.h>
#define MAX 250
 
int P(int);
int L(int);
int R(int);
 
int main(void){
     
    int i,n,h[MAX];
    scanf("%d",&n);
     
    for(i = 1 ; i <= n ; i++){
        scanf("%d",&h[i]);
    }
     
    for(i = 1 ; i <= n ; i++){
         
        printf("node %d: key = %d, " ,i,h[i]);
         
        if(P(i)!=0){
            printf("parent key = %d, ",h[P(i)]);
        }
         
        if(L(i) != 0 && L(i) <= n){
            printf("left key = %d, ",h[L(i)]);
            if(R(i) != 0 && R(i) <= n){
                printf("right key = %d, ",h[R(i)]);
            }
        }
         
        printf("\n");
    }
    return 0;
}
 
int P(int i){
    return i/2;
}
 
int L(int i){
    return 2*i;
}
 
int R(int i){
    return 2*i+1;
}