#include<stdio.h>
int main(void){
	int n,nx[1000]={0},ny[1000]={0},mx[]={-1,0,1,0},my[]={0,-1,0,1},i,a,b,maxx=0,maxy=0,minx=0,miny=0,l=0,fx[1000],fy[1000];
	while(1){
		scanf("%d",&n);
		if(n==0){
			break;
		}
		i=1;
		while(i<n){
			scanf("%d %d",&a,&b);
			nx[i]=nx[a]+mx[b];
			ny[i]=ny[a]+my[b];
			if(nx[i]>maxx){
				maxx=nx[i];
			}
			else if(nx[i]<minx){
				minx=nx[i];
			}
			if(ny[i]>maxy){
				maxy=ny[i];
			}
			else if(ny[i]<miny){
				miny=ny[i];
			}
			i++;
		}
		a=maxx-minx+1;
		b=maxy-miny+1;
		fx[l]=a;
		fy[l]=b;
		l++;
	}
	for(i=0;i<l;i++){
		printf("%d %d\n",fx[i],fy[i]);
	}
	return 0;
}