
#include <stdio.h>
void parent(int);
void left(int);
void right(int);
int n;
int a[251];
int main(){
    
    scanf("%d",&n);
    int i;
    
    for(i=1;i<=n;i++)scanf("%d",&a[i]);
    for(i=1;i<=n;i++){
        printf("node %d: key = %d, ",i,a[i]);
        parent(i);
        left(i);
        right(i);
        printf("\n");
    }
}

void parent(int i){
    int p=i/2;
    if(p>=1)printf("parent key = %d, ",a[p]);
}
void left(int i){
    if(2*i<=n)printf("left key = %d, ",a[2*i]);
}
void right(int i){
    if(2*i+1<=n)printf("left key = %d, ",a[2*i+1]);
}