#include<stdio.h>
#define MAX 251

//二分ヒープは1オリジン
int main(){
  int h, p, l, r;
  int a[MAX];
  int i;

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

  for(i=1;i<=h;i++){
    p = i / 2;
    l = 2 * i;
    r = 2 * i + 1;
    printf("node %d: ", i); //ノード番号
    printf("key = %d, ", a[i]); //key
    if(i != 1) printf("parent key = %d, ", a[p]); //根じゃないなら親ノードのkey表示
    if(l <= h) printf("left key = %d, ", a[l]); //右の子いれば表示
    if(r <= h) printf("right key = %d, ", a[r]); //左の子いれば表示
    printf("\n");
  }
  
  return 0;
}

