#include<stdio.h>
#define MAX 251
 
main()
{
  int A[MAX], Z, i;
 
  scanf("%d", &Z);
  for(i=1; i<=Z; i++)
    {
      scanf("%d", &A[i]);
    }
 
  for(i=1; i<=Z; i++)
    {
      printf("node %d: key = %d, ", i, A[i]);
      if(i==1)
    {
      printf("left key = %d, right key = %d, ", A[2*i], A[2*i+1]);
    }
      else 
    {
      printf("parent key = %d, ", A[i/2]);
     
      if(2*i + 2 < Z)
        {
          printf("right key = %d, ", A[2*i+1]);
        }
 if(2*i <=Z)
        {
          printf("left key = %d, ", A[2*i]);
        }
    }
      printf("\n");
    }
 
  return 0;
}