#include<iostream.h>
#include<conio.h>
int n, v[2000], hv=0, k, a[2000], b[2000], p[2000], hp=0;

int provb(){
  for(int i=0; i<n; i++)
    for(int j=i+1; j<n; j++)
      if(b[i]==b[j]) return 1;
  return 0;
}
int provv(int x){
  for(int i=0; i<hv; i++) if(x==v[i]) return 0;
  return 1;
}
int provk(){
  int h=0, c=0;
  for(int i=0; i<hv; i++){
    for(int j=0; j<n; j++)
      if(v[i]==b[j]) h=1;
    if(h==0) {
      if(c!=0) return 0;
      else c=v[i]; }
    h=0;
  }
  return c;
}
int provp(int x){
  for(int i=0; i<hp; i++) if(x==p[i]) return 1;
  return 0;
}
int izch(){ for(int i=0; i<hp; i++) p[i]=0; hp=0;
}
int put(int e){
  if(k==e) return 1;
  if(provp(e)) return 0;
  for(int i=0; i<n; i++){
    if(b[i]==e) {
      p[hp]=e; hp++;
      return put(a[i]);
    }
  }
  return 0;
}

int main(){
  cin>>n;
  for(int i=0; i<n; i++)
    cin>>a[i]>>b[i];
  if(provb()){ cout<<"0 0"<<endl; getch(); return 0;}
  for(i=0; i<n; i++) {
    if(provv(a[i])){ v[hv]=a[i]; hv++; }
    if(provv(b[i])){ v[hv]=b[i]; hv++; }
  }
  k=provk();
  if(k==0){ cout<<"0 0"<<endl; getch(); return 0;}
  for(i=0; i<hv; i++){
    if(put(v[i])==0){ cout<<"0 0"<<endl; getch(); return 0;}
    izch();
  }
  cout<<hv<<' '<<k<<endl;
  getch(); return 0;
}