#include <stdio.h>
#define MAX 1000

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

int main(){
  int i, n;
  node t[MAX];

  scanf("%d", &n);
  for(i = 1; i <= n; i++){
    scanf("%d", &t[i].k);
    t[i].id = i;
  }
  for(i = 1; i <= n; i++){
    t[i].pk = t[i/2].k;
    t[i].lk = t[2*i].k;
    t[i].rk = t[2*i+1].k;
  }

  for(i = 1; i <= n; i++){
    printf("node %d: key = %d, ", t[i].id, t[i].k);
    if(t[i].id != 1) printf("parent key = %d, ", t[i].pk);
    if(n % 2 == 0 && i <= n / 2){
      printf("left key = %d, ", t[i].lk);
      if(i != n / 2) printf("right key = %d, ", t[i].rk);
    }
    else if(n % 2 == 1 && i <= n / 2){
      printf("left key = %d, right key = %d, ", t[i].lk, t[i].rk);
    }
    printf("\n");
  }
  return 0;
}

