#include <stdio.h>
int parent(int );
int left(int );
int right(int );
int main() {
	int heap_size,i;
	int A[260];
	scanf("%d",&heap_size);
	for(i=1;i<=heap_size;i++) {
		scanf("%d",&A[i]);
	}

	for(i=1;i<=heap_size;i++) {
		printf("node %d: key = %d, ",i,A[i]);
		if(parent(i) != 0) printf("parent key = %d, ",A[parent(i)]);
		if(left(i) <= heap_size)   printf("left key = %d, ",A[left(i)]);
		if(right(i) <= heap_size)   printf("right key = %d, ",A[right(i)]);
		printf("\n");
	}
	return 0;
}

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