#include <stdio.h>
#define MAX 250

int q(int);
int l(int);
int r(int);

int main(void) {

	int i, n, h[MAX];
	scanf("%d", &n);

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

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

		printf("node %d: key = %d, ", i, h[i]);

		if (q(i) != 0) {
			printf("parent key = %d, ", h[q(i)]);
		}

		if (l(i) != 0 && l(i) <= n) {
			printf("left key = %d, ", h[l(i)]);
			if (r(i) != 0 && r(i) <= n) {
				printf("right key = %d, ", h[r(i)]);
			}
		}

		printf("\n");
	}
	return 0;
}

int q(int a) {
	return a / 2;
}

int l(int a) {
	return 2 * a;
}

int r(int a) {
	return 2 * a + 1;
}
