#include<stdio.h>

int main(){
    int i,j;
    int num;
    int n,d;
    
    int h,h_min,h_max;
    int w,w_min,w_max;
    
    int x[200];
    int y[200];
    
    
    while(1){
        scanf("%d",&num);
        
        if(num==0){
            break;
        }/*a*/
        
        for(i=0;i<200;++i){
            x[i]=0;
            y[i]=0;
        }/*a*/
        
        h=1;w=1;
        
        h_min=0;h_max=0;
        w_min=0;w_max=0;
        
        for(j=1;j<num;++j){
            scanf("%d %d",&n,&d);
            
            switch(d){
                case 0:
                    w=x[n]-1;
                break;
                
                case 1:
                    h=y[n]-1;
                break;
                
                case 2:
                    w=x[n]+1;
                break;
                
                case 3:
                    h=y[n]+1;
                break;
                
                default :
                break;
            }/*a*/
            
            x[j]=w;
            y[j]=h;
            
            if(x[j]<w_min){
                w_min=x[j];
            }/*a*/
            if(x[j]>w_max){
                w_max=x[j];
            }/*a*/
            if(y[j]<h_min){
                h_min=y[j];
            }/*a*/
            if(y[j]>h_max){
                h_max=y[j];
            }/*a*/
        }/*a*/
        printf("%d %d\n", w_max-w_min+1,h_max-h_min+1);
    }/*a*/
    
    return 0;
}