#include <stdio.h>
#include <stdlib.h>
int dx[]={-1, 0, 1, 0}, dy[]={0, -1, 0, 1};
int comp(const void* a, const void* b) { return *((int*)a)>*((int*)b); }
int main(void)
{
    int n;
    while (scanf("%d", &n), n) {
        int i, x[200]={0}, y[200]={0};
        for(i=1;i<n;++i) {
            int j, d;
            scanf("%d%d", &j, &d);
            x[i]=x[j]+dx[d];
            y[i]=y[j]+dy[d];
        }
        qsort(x, n, sizeof(int), comp);
        qsort(y, n, sizeof(int), comp);
        printf("%d %d\n", x[n-1]-x[0]+1, y[n-1]-y[0]+1);
    }
    return 0;
}