
#include <stdio.h>
#include <stdint.h>

int64_t data[2 ^ 250];

int32_t main(void)
{
  int64_t num;
  scanf("%ld", &num);

  uint32_t i;
  for (i = 0; i < num; i++) {
    scanf("%ld", &data[i]);
  }

  for (i = 0; i < num; i++) {
    printf("node %u: key = %ld, ", i + 1, data[i]);
    if (0 < ((i + 1) / 2)) {
      printf("parent key = %ld, ", data[((i + 1) / 2) - 1]);
    }

    if (2 * (i + 1) < (num + 1)) {
      printf("left key = %ld, ", data[2 * (i + 1) - 1]);
    }

    if ((2 * (i + 1) + 1) < (num + 1)) {
      printf("right key = %ld, ", data[2 * (i + 1) + 1 - 1]);
    }
    printf("\n");
  }

  return 0;
}