#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 i,n;
	int A[250];

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

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