#include<stdio.h>

int main()
{
	int N,n,d,p[201][2],i,j,my[4]={0,1,0,-1},mx[4]={-1,0,1,0},min[2],max[2];
	for(;scanf("%d",&N),N;)
	{
		p[0][0]=p[0][1]=0;
		min[0]=min[1]=10000000;
		max[0]=max[1]=-10000000;
		for(i=1;i<N;i++)
		{
			scanf("%d%d",&n,&d);
			p[i][0]=p[n][0]+my[d];
			p[i][1]=p[n][1]+mx[d];
		}
		for(i=0;i<N;i++)
			for(j=0;j<2;j++)
			{
				if(min[j]>p[i][j])min[j]=p[i][j];
				if(max[j]<p[i][j])max[j]=p[i][j];
			}
		printf("%d %d\n",max[1]-min[1]+1,max[0]-min[0]+1);
	}
	return 0;
}