#include <stdio.h>
#define H 251

typedef struct {
  int k;
  int pk;
  int lk;
  int rk;
} node;

int main(int argc, char const *argv[]) {
  int input,i,j;
  node n[H];

  scanf("%d",&input);

for (i = 1; i <= input; i++) {
  scanf("%d",&n[i].k);

  if (i / 2 > 0) {
    n[i].pk = n[i/2].k;
  }
  if (i * 2 <= input) {
    n[i].lk = n[i*2].k;
  }
  if (i * 2 + 1<= input) {
    n[i].rk = n[i*2+1].k;
  }

}

for (i = 1; i <= input; i++) {
    printf("node %d: key = %d, ",i,n[i].k);
  if (i / 2 > 0) {
    printf("parent key = %d, ",n[i/2].k);
  }
  if (i * 2 <= input) {
    printf("left key = %d, ",n[i*2].k);
  }
  if (i * 2 + 1 <= input) {
    printf("right key = %d, ",n[i*2+1].k);
  }
  printf("\n");
}
  return 0;
}