#include <stdio.h>          // printf(), scanf()
#define MAX_N 250

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 argc, char** argv)
{
	int a[MAX_N + 1];
	int h;
	int i;

	scanf("%d", &h);
	for (i = 1; i <= h; ++i)
		scanf("%d", &a[i]);

	for (i = 1; i <= h; ++i)
	{
		printf("node %d: key = %d, ", i, 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, ", a[right(i)]);

		printf("\n");
	}

	return 0;
}