#include<stdio.h>

int parent(int);
int left(int);
int right(int);

#define N 20000

int h,A[N];

int parent(int i)
{
  return A[i/2];
}

int left(int i)
{
  return A[2*i];
}

int right(int i)
{
  return A[2*i+1];
}

int main()
{
  int p,r,l,i;

  scanf("%d",&h);

  for(i=1;i<=h;i++){

    scanf("%d",&A[i]);

  }


  for(i=1;i<=h;i++){

    p=parent(i);
    l=left(i);
    r=right(i);


    printf("node %d: key=%d, ",i,A[i]);
  
    if(p!=0) printf("parent key=%d, ",p);

  if(l==0) printf("\n");

  if(l!=0) printf("left key=%d, ",l);

  if(r!=0) printf("right key=%d, \n",r);

  }

  return 0;
}