#include<stdio.h>

int parent( int i ){ return i / 2; }
int left( int i ){ return 2 * i; }
int right( int i ){ return 2 * i + 1; }

int main()
{
  int H, i;

  scanf("%d", &H);
  int A[H+1];

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

  for( i=1; i<=H; i++ )
    {
      printf("node %d: ", i);
      printf("key = %d, ", A[i]);

      if( parent(i) >= 1 )
	{
	  printf("parent key = %d, ", A[parent(i)]);
	}
      if( left(i) <= H )
	{
	  printf("left key = %d, ", A[left(i)]);
	}
      if( right(i) <= H )
	{
	  printf("right key = %d, \n", A[right(i)]);
	}
      if( right(i) > H )
	{
	  printf("\n");
	}
    }

  return 0;
}

