semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(){
	   
	int i,n,t[50000]={0},f=0,d,k,l,h;
	double m=10000,y=1,s;
	scanf("%d",&n);
	struct qj{
		double a,b;
	}*q;
	q=(struct qj*)malloc(sizeof(struct qj)*n);
	for(i=0;i<n;i++){
		scanf("%lf%lf",&(q[i].a),&(q[i].b));
		if(q[i].a<=m){
			m=q[i].a;
		}if(q[i].b>=y){
			y=q[i].b;
		}
	}
	for(s=m,d=0;s<=y;s+=0.5,d++){
		for(i=0;i<n;i++){
			if(s>=q[i].a&&s<=q[i].b){
				t[d]=1;
				break;
			}
		}
	}for(k=0;k<d;k++){
	    if(t[k]!=1){
		   f=1;
		   break;
		} 
	}
	if(f==1){  
		printf("no");
	}
	if(f==0){l=(int)m;h=(int)y;
		printf("%d %d",l,h);
	}
	free(q);
	return 0;
}
int main()
{
    int a[N],b[N];
    int n;
    int i,j,t;
    int flag;

    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d %d",&a[i],&b[i]);
    }

    for(j=0;j<n-1;j++)
    {
        for(i=0;i<n-j-1;i++)
        {
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
                t=b[i];
                b[i]=b[i+1];
                b[i+1]=t;
            }
        }
    }


    for(i=0,flag=1;i<n;i++)
    {
        if(i==0)
        {
            continue;
        }

        else if(a[i]==a[i-1])
        {
            if(b[i]>=b[i-1])
            {
            }
            else if(b[i]<b[i-1])
            {
                b[i]=b[i-1];
            }
        }
        else if(a[i]<=b[i-1])
        {
            a[i]=a[i-1];
            if(b[i]>=b[i-1])
            {
            }
            else if(b[i]<b[i-1])
            {
                b[i]=b[i-1];
            }
        }
        else if(a[i]>b[i-1])
        {
            flag=0;
            break;
        }
    }

    if(flag==0)
    {
        printf("no\n");
    }
    else if(flag==1)
    {
        printf("%d %d\n",a[n-1],b[n-1]);
    }

    return 0;
}
int main()
{
  int n,i,j,e,q=0,kaishi,jieshu;
  int ks[100000],js[100000],sz[100000];
  scanf("%d",&n);
  for(i=0;i<n;i++){
   scanf("%d %d",&ks[i],&js[i]);
   }
kaishi=ks[0];
for(i=1;i<n;i++){
    if(kaishi>ks[i]){
        kaishi=ks[i];
    }
}
jieshu=js[0];
for(i=1;i<n;i++){
    if(jieshu<js[i]){
        jieshu=js[i];
    }
}
for(i=kaishi;i<=jieshu;i++){
    if(i!=jieshu){
        sz[i]=1;
    }else{
        sz[i]=0;
    }
}
for(i=0;i<n;i++){
    for(j=ks[i];j<js[i];j++){
        if(sz[j]==1){
            sz[j]=0;
        }
    }
}
for(i=kaishi;i<=jieshu;i++){
    if(sz[i]==1){
        q++;
    }
}
if(q==0){
   printf("%d %d",kaishi,jieshu);
 }else{
     printf("no");
 }
return 0;
}
int main(){
	int i,j,n,k,m,s,a[50000],b[50000];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
	}
	for(i=1;i<=n-1;i++){
		for(j=0;j<n-i;j++){
			if(a[j]>a[j+1]){
				k=a[j];
				a[j]=a[j+1];
				a[j+1]=k;
				m=b[j];
				b[j]=b[j+1];
				b[j+1]=m;
			}
		}
	}
	for(i=0;i<n;i++){
		if(b[i]<a[i+1]){
			s=0;
			break;
		}else{
			if(b[i]<b[i+1]){
				s=1;
				continue;
			}else{
				b[i+1]=b[i];
				s=1;
				continue;
			}
		}
	}
	if(s==0){
		printf("no");
	}else{
		printf("%d %d",a[0],b[n-1]);
	}
	return 0;
}
int main(){
    int n,i,k,s,t,x;
    scanf("%d",&n);
    struct q
    {
        int a,b;
    }
    m[n],e;
    for(i=0;i<n;i++){
        scanf("%d %d",&(m[i].a),&(m[i].b));
    }
    for(k=1;k<=n;k++){
        for(i=0;i<n-k;i++){
            if((m[i].a)>(m[i+1].a)){
                e=m[i+1];
                m[i+1]=m[i];
                m[i]=e;
            }
        }
    }
    
    
    
    
    
    
    s=0;
    x=m[0].b;
    for(i=0;i<(n-1);i++){
       if(x<m[i+1].a){
            s=1;
       }
       if(x<m[i+1].b){
           x=m[i+1].b;
       }
    }
    t=m[0].b;
    for(i=1;i<n;i++){
        if(m[i].b>t){
            t=m[i].b;
        }
    }
    if(s>0){
        printf("no");
    }else{
        printf("%d %d",m[0].a,t);
    }
    return 0;
}
int main(){
  int n,i,q,z,j,min,max,k=0;
  scanf("%d",&n);
  int s[10005]={0};
  for(i=0;i<n;i++){
     scanf("%d%d",&q,&z);
	 for(j=0;j<10005;j++){
		 if(j>=q&&j<z){
		 s[j]=1;
		 }
	 }
  }
  for(i=0;i<10005;i++){
	  if(s[i]==1){
	  min=i;
	  break;
	  } 
  }
  for(i=0;i<10005;i++){
	  if(s[i]==1){
	  max=i;
	  }
  }
  for(i=min;i<=max;i++){
	  k+=s[i];
  }
  if(k!=(max-min+1)){
    printf("no");
  }else{
  printf("%d %d",min,max+1);
  }
  
  return 0;
}
int main(){
    struct qujian{
       int a,b;   
           }Q[50000];
    int n,i,j,c,d;
    scanf("%d",&n);   
    for(i=0;i<n;i++){
       scanf("%d%d",&(Q[i].a),&(Q[i].b));              
                     }
    for(i=0;i<n;i++){
        for(j=1;j<n-i;j++){
           if(Q[j-1].a>Q[j].a){
              Q[500]=Q[j-1];
              Q[j-1]=Q[j];
              Q[j]=Q[500];                          
                               }                
                           }             
                     } 

    for(i=0,c=Q[0].a,d=Q[0].b;i<n;i++){
        
         if(Q[i].a>d){printf("no");return 0;}
         else{
            if(Q[i].b>d){d=Q[i].b;}  
              }                     
                              }            
    printf("%d %d",c,d);    

return 0;
}
int main(){
int n,i,j,k,a,b;
struct qj{
 int a,b;
}qj[50000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
	scanf("%d%d",&(qj[i].a),&(qj[i].b));
}

for(k=1;k<=n;k++)
{
  for(i=0;i<n-k;i++)
  {
	if(qj[i].a>qj[i+1].a)
	{
	  a=qj[i+1].a;
	  qj[i+1].a=qj[i].a;
	  qj[i].a=a;

b=qj[i+1].b;
	  qj[i+1].b=qj[i].b;
	  qj[i].b=b;

	}
  
  }
}

for(i=0;i<=n-2;)
{
  if(qj[i].b>=qj[i+1].a)
  {
    if(qj[i].b<qj[i+1].b)
	
	  qj[i].b=qj[i+1].b;
	
    for(j=i+1;j<n-1;j++)
	{
	  qj[j].a=qj[j+1].a;
	  qj[j].b=qj[j+1].b;
	}
	n--;
  }
  else i++; 
}
	
if(n!=1) printf("no");
else printf("%d %d",qj[0].a,qj[0].b);

return 0;
}
int main(){
int n,a[50000],b[50000],sz[10001],p=10000,q=0,m;
double k;
scanf("%d",&n);
for(int s=0;s<10001;s++){
sz[s]=0;
}
for(int i=0;i<n;i++){
scanf("%d%d",&a[i],&b[i]);
if(a[i]<p){
p=a[i];
}
if(b[i]>q){
q=b[i];
}
}
for(k=p+0.5;k<q;k++){
for(m=0;m<n;m++){
if(k>a[m]&&k<b[m]){
break;
}
}
if(m==n){
printf("no");
break;
}
else{
continue;
}
}
if(k==q+0.5){
printf("%d %d",p,q);
}
return 0;
}
int main() {
	int n;
	int min=10000,max=0;
	int a[10001];
	int b[10001];
	int i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++) {
		scanf("%d%d",&a[i],&b[i]);
		if(a[i]<min)
			min=a[i];
		if(b[i]>max)
			max=b[i];
	}
	for(i=1;i<n;i++) {
		for(j=0;j<n-i;j++) {
			if(a[j]>a[j+1]) {
				int t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
				
				t=b[j];
				b[j]=b[j+1];
				b[j+1]=t;
			}
		}
	}
	int mm=b[0];
	for(i=1;i<n;i++) {
		if(a[i]>mm) break;
		if(b[i]>mm) mm=b[i];
	}
	if(i==n) printf("%d %d\n",min,max);
	else printf("no\n");
	return 0;
}
int main(){
	int a[50000],b[50000],c[10002],d[10000];
	int i,n,j,k=0,l=1,x;
	double z;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
	}
	for(i=0;i<10002;i++){
		c[i]=0;
	}
	for(i=0;i<n;i++){
		for(j=a[i];j<=b[i];j++){
			c[j]=1;
		}
	}
	for(i=0;i<10001;i++){
		if(c[i]==c[i+1]){
			continue;
		}
		if(c[i]!=c[i+1]){
			k++;
			d[l]=i;
			d[l+1]=i+1;
			l=l+2;
		}
	}
	if(k==2){
		for(z=d[2]+0.5;z<d[3];z++){
			x=0;
			for(i=0;i<n;i++){
				if((z<a[i]&&z<b[i])||(z>a[i]&&z>b[i])){
					x=x+0;
				}else{
					x++;
				}
			}
			if(x!=0){
				continue;
			}
			if(x==0){
				printf("no");
				break;
			}
		}
		if(x!=0){
		printf("%d %d",d[2],d[3]);
		}
	}else{
		printf("no");
	}
	return 0;
}
int main ()
{
    int n,i,j,a[max],b[max],e,f,c=0;
    scanf("%d",&n);
  for(i=0;i<n;i++)
  {
      scanf("%d %d",&a[i],&b[i]);
  }
  for(j=1;j<=n;j++)
  {
      for(i=0;i<n-j;i++)
      {
          if(a[i]>=a[i+1])
          {
            e=a[i+1];
            a[i+1]=a[i];
            a[i]=e;
          }
      }
  }
  for(j=1;j<=n;j++)
  {
      for(i=0;i<n-j;i++)
      {
          if(b[i]>=b[i+1])
          {
              f=b[i+1];
              b[i+1]=b[i];
              b[i]=f;
          }
      }
  }
  for(i=0;i<n-1;i++)
  {
      if(a[i+1]<=b[i])
      {
          c++;
      }
  }
  if(c==n-1)
  {
      printf("%d %d\n",a[0],b[n-1]);
  }
  else
  {
      printf("no\n");
  }
  return 0;
}
int main()
{
	int n,i,sz[50000][2],a[100000],t=0,k,p,q,j,c,b=0,e=1;
	double f;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		for(j=0;j<2;j++){
			scanf("%d",&sz[i][j]);
	        a[t]=sz[i][j];
	        t++;
		}
	}
	for(q=1;q<=(n+n);q++){
		for(k=0;k<(n+n-q);k++){
			if(a[k]>a[k+1]){
				p=a[k+1];
				a[k+1]=a[k];
				a[k]=p;
			}
		}
	}
	for(i=a[0];i<=(a[t-1]-1);i++){
		f=i+0.5;
		b=0;
		for(c=0;c<n;c++){ 
			if(f<sz[c][0]||f>sz[c][1]){
				b++;
			}
		}
		if(b==n){
	        printf("no");
			e=0;
			break;
		}
	}
	    if(e==1){
		    printf("%d %d",a[0],a[t-1]);
	}
    return 0;
}
int main()
{
int a[10000],b[10000],c[10001];
int i,n,m,s,p,q=1;
for(i=0;i<10001;i++){
	c[i]=1;
}
scanf("%d",&n);
for(i=0;i<n;i++){
    scanf("%d%d",&a[i],&b[i]);
	for(m=a[i];m<b[i];m++){
	c[m]=0;
	}
}
for(i=0;i<10001;i++){
	if(c[i]==0){
	s=i;
	break;
	}
}
for(i=10000;i>=0;i--){
    if(c[i]==0){
		p=i+1;
	break;
	}
}
for(i=s;i<p;i++){
	if(c[i]!=0){
     q=0;
	break;
	}
}
if(q==0){
	printf("no");
}else{
    printf("%d %d",s,p);
}

		return 0;
}
int main(){
	int n,i,j,m;
	scanf("%d",&n);
	struct qj{
		int x,y;}
	qj[50000];
	for(i=0;i<n;i++){
		scanf("%d%d",&qj[i].x,&qj[i].y);}
	for(i=n-1;i>0;i--){
		for(j=0;j<i;j++){
			if(qj[j].x>qj[j+1].x){
				int a,b;
				a=qj[j+1].x;
				b=qj[j+1].y;
				qj[j+1].x=qj[j].x;
				qj[j+1].y=qj[j].y;
				qj[j].x=a;
				qj[j].y=b;}}}
	m=qj[0].y;
	for(i=0;i<n-1;i++){
		if(qj[i+1].y>m){
			if(qj[i+1].x>m){
				printf("no");
				return 0;}
			m=qj[i+1].y;}}
	printf("%d %d",qj[0].x,m);
	return 0;
}
int main()
{
	int n,a[50000],b[50000],i,j,max,min,c[10001]={0},k=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&a[i],&b[i]);
	}
	min=a[0];
	max=b[0];
	for(i=1;i<n;i++)
	{
		if(a[i]<min)
			min=a[i];
		if(b[i]>max)
			max=b[i];
	}
	for(i=0;i<n;i++)
	{
		for(j=a[i];j<b[i];j++)
		{
			c[j]++;
		}
	}
	for(i=min;i<max;i++)
	{
		if(c[i]==0)
		{
			printf("no");
			k++;
			break;
		}
	}
	if(k==0)
		printf("%d %d",min,max);
}
int main()
{
    int a[ke],b[ke],c[ke],d,i,j,s,n,L,M,x,y;
    scanf("%d",&n);
    for(i=0;i<n;i++){scanf("%d%d",&a[i],&b[i]);}
    for(i=0;i<ke;i++){c[i]=1;}
    for(i=0;i<n;i++) {for(j=a[i];j<b[i];j++) {c[j]=0;}}
    for(i=1;i<n;i++)
        {
            if(a[i]<a[0]) a[0]=a[i];
            if(b[i]>b[0]) b[0]=b[i];
        }
    L=b[0]-a[0]+1;
    M=0;
    for(i=0;i<b[0];i++){M=c[i]+M;}
    if((M+L)==(b[0]+1)) printf("%d %d",a[0],b[0]);
    else printf("no");
    return 0;
}
int main(){
	int n,z[50000][2],x,y,i,j,q,w;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&z[i][0],&z[i][1]);
	}
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(z[i][0]>z[j][0])
			{
				q=z[i][0];
                w=z[i][1];
				z[i][0]=z[j][0];
				z[i][1]=z[j][1];
				z[j][0]=q;
				z[j][1]=w;
			}
		}
	}
	q=z[0][1];
	for(i=1;i<n;i++)
	{
		if(q<z[i][1])
		{
			q=z[i][1];		
		}
	}
	x=z[0][0];
	y=z[0][1];
    for(i=1;i<n;i++)
	{
		if(z[i][0]<=y&&z[i][1]>=y)
		{
			y=z[i][1];
		    
		}
		
	}
	if(y==q)
	
		printf("%d %d",x,y);
	else
		printf("no");
	return 0;

}
int main(){
    int n,a[10000],b[10000],i,j,c[10000],min=10000,max=0,s=0;
    scanf("%d",&n);
    for (i=1;i<=n;i++)  scanf("%d %d",&a[i],&b[i]);
    for (i=1;i<=n;i++) {
        if (a[i]<min) min=a[i];
    }
    for (i=1;i<=n;i++) {
        if (b[i]>max) max=b[i];
    }
    for (i=min;i<=max;i++){
        c[i]=0;
    }
    for (i=1;i<=n;i++){
        for (j=a[i];j<b[i];j++) {
            c[j]=1;
        }
    }
    for (j=min;j<=max;j++){
        s=s+c[j];
    }
    if (s==(max-min)) printf("%d %d",min,max);
    else printf("no");
    return 0;
}
int main(){
int n,i,k,h,e,d,g;
h=1;
int a[100],b[100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d",&a[i],&b[i]);
}
for(k=1;k<n;k++){
	for(i=0;i<n-k;i++){
		if(a[i]>a[i+1]){
		e=a[i];
		a[i]=a[i+1];
		a[i+1]=e;
		d=b[i];
		b[i]=b[i+1];
		b[i+1]=d;
		}
	}
}
h=1;
for(i=0;i<n-1;i++){
	if(b[i]<a[i+1]){
	h=0;
	break;
	}else if((b[i]>b[i+1])&&(i!=n-1)){
	g=b[i];
	b[i]=b[i+1];
	b[i+1]=g;
	}
}
if(h==0){
printf("no");
}else{
printf("%d %d",a[0],b[n-1]);
}
return 0;
}
int main(){
     int n,A[50000],B[50000];
     int b=0,i,a=50000,c=0,j;
     double m;
     scanf("%d",&n);
     for(i=0;i<n;i++){
                      scanf("%d%d",&A[i],&B[i]); 
                      if(A[i]<a){a=A[i];}
                      if(B[i]>b){b=B[i];}
                                         }
                      for(j=a;j<b;j++){m=j*1.0+0.5;
                                           for(i=0;i<n;i++){
                                                            if(m>A[i]&&m<B[i])
                                                           { c++;break;}}
                                                                         }
                                           if(c==b-a){printf("%d %d",a,b);}
                                           else{printf("no");}
                                           
                                           return 0;
                                           }
int main(){
	int n,i=0,k,e,t;
	int a[50000];
	int b[50000];
	int j=0;
	scanf("%d",&n);
	while (i<n)
	{
		scanf("%d %d",&a[i],&b[i]);
		i++;
	}
		

	for(k=1;k<=n;k++)
	{
		for(i=0;i<n-k;i++)
		{
			if(a[i]>a[i+1])
			{
				e=a[i];
				a[i]=a[i+1];
				a[i+1]=e;
				t=b[i];
				b[i]=b[i+1];
				b[i+1]=t;}
		}
	}
	for(i=0;i<n;i++)
	{
		if(b[i]<a[i+1])
		{
			j++;
		}
		else if(b[i]<=b[i+1])
		{
			a[i+1]=a[i];
		}
		else if(b[i]>b[i+1])
		{
			a[i+1]=a[i];
			b[i+1]=b[i];
		}
	}
	if(j==0)
	{
		printf("%d %d",a[n-1],b[n-1]);
	}
	else{
		printf("no");
	}
	return 0;
}
int main(){
    int n,i,l;
    scanf("%d",&n);
    int qj[50001];
    int qd[50001];
    int zd[50001];
    for(i=1;i<=n;i++){
        scanf("%d%d",&qd[i],&zd[i]);
    }
   int max,min,m,e;
  max=1;
  for(l=0;l<n;l++){
   for(i=1;i<=n-l;i++){
       if(qd[i]<qd[max])
       max=i;
   }
       if(max!=n-l){
           m=qd[max];
           qd[max]=qd[n-l];
           qd[n-l]=m;
           e=zd[max];
           zd[max]=zd[n-l];
           zd[n-l]=e;
       }else{max=1;}
   
}
  int flag,p;
  for(i=n;i>1;i--){
      if(zd[i]>=qd[i-1]){
          flag=1;
      }else{flag=0;break;}
      if(zd[i]>zd[i-1]){
          p=zd[i-1];
          zd[i-1]=zd[i];
          zd[i]=p;
      }
  }
   if(flag==1){
       printf("%d",qd[n]);
       printf(" %d",zd[1]);
   }
   if(flag==0){
       printf("no");
   }
   return 0;
}
int main()
{
int i,j,min,max,n,y=1;
int a[10000],b[10000],c[10000];
scanf("%d",&n);
for(i=0;i<10000;i++)
{c[i]=0;}
min=10000;
max=0;
for(i=0;i<n;i++)
{scanf("%d %d",&a[i],&b[i]);
	for(j=(a[i]+1);j<=(b[i]);j++)
	{c[j]=1;}
	if(min>(a[i]))
	{min=a[i];}
	if(max<(b[i]))
	{max=b[i];}
}
c[min]=1;
for(i=min;i<=max;i++)
	{if(c[i]==0)
	{printf("no");
	y=0;	
	break;}
}
if(y==1)
{printf("%d %d",min,max);}
return 0;
}
int main ()
{int n,i,j,a,b,e,k=0;
scanf("%d",&n);
int sz[n];
struct qujian{int a;int b;}q[n],h;
for(i=0;i<n;i++)
{scanf("%d%d",&a,&b);
q[i].a=a;
q[i].b=b;}
for(i=0;i<n;i++)
{for(j=0;j<n-1;j++){
        if(q[j].a>q[j+1].a){
            h=q[j];
            q[j]=q[j+1];
            q[j+1]=h;}}}
e=q[1].b;
for(i=0;i<=n;i++)
{for(j=0;j<i;j++)
{if(e<q[j].b)e=q[j].b;
sz[i]=e;}}
for(i=0;i<n;i++)
{if(sz[i]<q[i].a)k=k+1;}
if(k!=0)printf("no");
else printf("%d %d",q[0].a,sz[n]);
	return 0;
}
int main(){
int l[10000],r[10000];
int n,i,d,e,k,p,q;
scanf("%d\n",&n);
for(i=0;i<n;i++){
scanf("%d%d\n",&l[i],&r[i]);
}
for(k=1;k<n;k++){
for(i=0;i<n-1;i++){
if(l[i]>l[i+1]){
p=l[i+1],q=r[i+1];
l[i+1]=l[i],r[i+1]=r[i];
l[i]=p,r[i]=q;
}
}
}
for(k=0;k<n-1;k++){
for(i=1;i<n;i++){
if(l[k]<l[i]&&r[k]>r[i]){
l[i]=l[k],r[i]=r[k];
}
}
}
for(i=0;i<n-1;i++){
if(r[i]<l[i+1]){
e=0;break;
}
e=1;
}
if(e==0){printf("no");}
else{for(i=1,e=l[0];i<n;i++){
if(l[i]<e){
e=l[i];
}
}
for(i=1,d=r[0];i<n;i++){
if(r[i]>d){
d=r[i];
}
}
printf("%d %d",e,d);}
return 0;

}
int main(){
int i,n,a[50000],b[50000],m[20000],x,y,k;
scanf("%d",&n);
for(i=0;i<20000;i++)m[i]=0;
for(i=0;i<n;i++){	

	scanf("%d%d",&a[i],&b[i]);
	for(k=2*a[i];k<2*b[i];k++)m[k]=1;
	if(i==0){x=a[i];y=b[i];}
	else{
    	if(b[i]>y)y=b[i];
	    if(a[i]<x)x=a[i];
	}
}
for(k=2*x;k<2*y;k++){if(m[k]==0) {printf("no");break;}
                     if(k==2*y-1)printf("%d %d",x,y);
}
 return 0;
}
int main(){
    int n,i,t,x,d,m,y=0,s=1;
    scanf("%d",&n);
    int a[n],b[n];
    for(i=0;i<n;i++){
        scanf("%d %d\n",&a[i],&b[i]);
    }
    t=a[0];
    for(i=0;i<n;i++){
        if(t>a[i]){
            t=a[i];
        }
    }
    x=t;
    t=b[0];
    for(i=0;i<n;i++){
        if(t<b[i]){
            t=b[i];
        }
    }
    d=t;
    t=d-x;
    double e[t];
    for(m=0;m<t;m++){
        for(i=0;i<n;i++){
            e[m]=m+x+0.5;
            if(e[m]>a[i]&&e[m]<b[i]){
                y=1;
                break;
            }
        }
        s*=y;
        y=0;
    }
    if(s==0){
        printf("no");
    }else{
        printf("%d %d",x,d);
    }
}
int main ()
{  
   int i,j,n;
   struct piece {int a,b;} max,require,s[500],ex;
   scanf ("%d",&n);
    for (i=0;i<n;i++)
   {  scanf("%d %d\n",&(s[i].a),&(s[i].b)); }
    require=s[0];
   for(i=0;i<n;i++)
  {
      if (s[i].a<require.a)
       {require.a=s[i].a;}
      if (s[i].b>require.b)
       {require.b=s[i].b;}
   }
         for (i=0;i<=n-2;i++)
   {
     for(j=0;j<=n-i-2;j++)
     {
          if ((s[j].a)>(s[j+1].a))
         {
            ex=s[j+1];
            s[j+1]=s[j];
            s[j]=ex;
         } 
      }
   } 
   max=s[0];
         for (i=0;i<n;i++)
 {
     if((s[i].b>max.b)&&(s[i].a<=max.b))
     {
        max.b=s[i].b;
     } 
 }
    if ((max.a==require.a)&&(max.b==require.b))
   { 
          printf("%d %d",max.a,max.b);
   }
   else
  {
     printf("no");
  }
     return 0;
}
int main()
{
	int i,j,k,n,e,max,u=0;
	int a[50000],b[50000];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d %d",&a[i],&b[i]);
	}
	for(k=1;k<=n;k++)
	{
		for(i=0;i<n-k;i++)
		{
			if(a[i]>a[i+1])
			{
				e=a[i+1];
				a[i+1]=a[i];
				a[i]=e;
				e=b[i+1];
				b[i+1]=b[i];
				b[i]=e;
			}
		}
	}
	max=b[0];
	for(i=0;i<n;i++)
	{
		if(max<a[i])
		{
			u=1;
			break;
		}
		else
		{
			if(max<=b[i])
			{
				max=b[i];
			}
		}
	}
	if(u==0)
	{
		printf("%d %d",a[0],max);
	}
	else
	{
		printf("no");
	}
	return 0;
}
void main()
{
	int n,i,j,s=1,max,min,a[50000],b[50000],c[50000]={0};
	scanf("%d",&n);
	scanf("%d%d",&a[0],&b[0]);
	max=b[0];
	min=a[0];
	for(i=1;i<n;i++)
	{
		scanf("%d%d",&a[i],&b[i]);
		if(a[i]<min)min=a[i];
		if(b[i]>max)max=b[i];
	}
	for(i=0;i<n;i++)
	{
		for(j=a[i];j<b[i];j++)
			c[j]=1;
	}
	for(j=min;j<max;j++)
	{
		if(c[j]!=1)
		{
			printf("no\n");
			s=0;
			break;
		}
	}
	if(s==1)printf("%d %d\n",min,max);
}
int main(){
	int n,i,k;
	struct{
		int p;
		int q;
	}a[100],b[100],t;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&a[i].p,&a[i].q);
	}
	
	for(k=1;k<=n;k++){
		for(i=0;i<n-k;i++){
			if(a[i].p>a[i+1].p){
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}
		}
	}
	for(i=0;i<n;i++){
		b[i]=a[i];
	}
	for(k=1;k<=n;k++){
		for(i=0;i<n-k;i++){
			if(b[i].q>b[i+1].q){
				t=b[i];
				b[i]=b[i+1];
				b[i+1]=t;
			}
		}
	}
	for(i=0;i<n-1;i++){
		if(b[i].q<a[i+1].p){
			printf("no\n");
	return 0;
		}
		
	}
	printf("%d %d\n",a[0].p,b[n-1].q);
	return 0;
}
int main(int argc, char* argv[])
{
	int n,a[500000],b[500000],i,j,e,m,k;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&a[i],&b[i]);
	}
	for(i=1;i<n;i++){
		for(j=0;j<n-i;j++){
            if(a[j]>a[j+1]){
               e=a[j+1];
			   a[j+1]=a[j];
			   a[j]=e;
               m=b[j+1];
			   b[j+1]=b[j];
			   b[j]=m;
			}
		}
	}
	k=0;
	for(i=0;i<n-1;i++){
		if(a[i+1]>b[i]){
			printf("no");
            k=1;
			break;
		}else if(b[i]>b[i+1]){
            b[i+1]=b[i];
		}
	}
	if(k==0){
     	printf("%d %d",a[0],b[n-1]);
	}
	return 0;
}
struct zuobiao
{
	int left,right;
}zuo[50000],e;
int main()
{
	int t,i,j,releft,reright;
	scanf("%d",&t);
	for(i=0;i<t;i++)
		scanf("%d %d",&zuo[i].left,&zuo[i].right);
	for(i=1;i<t;i++)
		for(j=0;j<t-i;j++)
			if(zuo[j].left>zuo[j+1].left)
			{
				e=zuo[j];
				zuo[j]=zuo[j+1];
				zuo[j+1]=e;
			}
			releft=zuo[0].left;
			reright=zuo[0].right;
			i=1;
			while(i<t)
			{
				if(zuo[i].left>reright)
				{
					printf("no\n");
					break;
				}
				else if(zuo[i].left<=reright&&zuo[i].right>=reright)
					reright=zuo[i].right;
				i++;
			}
			if(i==t)printf("%d %d\n",releft,reright);

	
	return 0;
}
int main()
{
	struct ab
	{
		int a;
		int b;
	};
	int n,i,j,e=1,max=0;
	struct ab *p,t;
	scanf("%d",&n);
	p=(struct ab * )malloc(sizeof(struct ab)*n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&p[i].a,&p[i].b);
	}
	for(i=0;i<n-1;i++)
	{
		t=p[i];
		for(j=i+1;j<n;j++)
		{
			if(p[j].a<p[i].a)
			{
				p[i]=p[j];
				p[j]=t;
				t=p[i];
			}
		}
	}
	for(i=0;i<n-1;i++)
	{
		if(p[i].b>max) max=p[i].b;
		if(max<p[i+1].a)
		{
			e=0;
			break;
		}
	}
	if(p[n-1].b>max) max=p[n-1].b;
	if(e==0) printf("no");
	else	printf("%d %d",p[0].a,max);
	return 0;
}
int main(){
   int n,e;
   int s[50000][2];
   scanf("%d",&n);
   for(int i=0;i<=n-1;i++){
	   scanf("%d%d",&s[i][0],&s[i][1]);
   }
   for(int k=1;k<=n;k++){
	   for(int i=0;i<=n-k;i++){
		   if(s[i+1][0]>=s[i][0]){
			   e=s[i+1][0];
			   s[i+1][0]=s[i][0];
			   s[i][0]=e;
			   e=s[i+1][1];
			   s[i+1][1]=s[i][1];
			   s[i][1]=e;
		   }
	   }
   }
   for(int a=n-1;a>=1;a--){
	   if(s[a-1][0]>s[a][1]){
		   printf("no");
		   break;
	   }else{
		   s[a-1][0]=s[a][0];
		   if(s[a][1]>s[a-1][1]){
			   s[a-1][1]=s[a][1];
		   }


	   }
	   if(a==1){printf("%d %d",s[0][0],s[0][1]);}
   }

 return 0;}
int main()
{
   int n,a[5001],b[5001],i,j,m;
   m=0;
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
       scanf("%d%d",&(a[i]),&(b[i]));
   }

   for(i=1;i<n;i++)   
   /*************************************************************************************
   attention?????????????i???1????????????i=0?????????
   j?????n-1, ???a[j+1] = a[n]?a[n]?????????i<n????i<=n
   **************************************************************************************/
   {
         for(j=0;j<n-i;j++)
         {
                if(a[j]>a[j+1])
                {
                         int e;
                         e=a[j];
                         a[j]=a[j+1];
                         a[j+1]=e;
                         e=b[j];
                         b[j]=b[j+1];
                         b[j+1]=e;
                }
         }
   }

  for(i=1;i<n;i++) 
  //??????i???1???????0??????
  {
	  for( j = 0; j < i; j++ )  //????i??????????????i??????a[i]?
	  {
             if(b[j] >= a[i])  //???????">="????">"
                 break;
	  }
	  if( j == i )   
	  //if(j==i)?????????????????????????a[i]??a[i]??????
	  {
		  break;  
		  //???????m??????????????????????????break?????
		  //???????????????????????????????????????
	  }
  }

  if( i == n )  //if( i==n )???????????????????????????????????????
  {
	  int max = b[0]; //?????????b[n-1]???b[n-1]?????????
	  for( j = 1; j < n; j++ )
	  {
         if( b[j] > max )
			 max = b[j];
	  }
      printf("%d %d",a[0],max);
  }
  else
  {
          printf("no");
  }
  return 0;
}
int main(){
     int n;
     scanf("%d",&n);
     int i;
     struct qj{
       int a,b;       
     }*qjs,e;
     qjs=(struct qj*)malloc(sizeof(struct qj)*n);
     for(i=0;i<n;i++){
       scanf("%d%d",&qjs[i].a,&qjs[i].b);
     }
     int k,t;
     for(k=1;k<=n;k++){
       for(i=0;i<n-k;i++){
         if(qjs[i].a>qjs[i+1].a){
           e=qjs[i];
           qjs[i]=qjs[i+1];
           qjs[i+1]=e;
         }
         if(qjs[i].b>qjs[i+1].b){
           t=qjs[i].b;
           qjs[i].b=qjs[i+1].b;
           qjs[i+1].b=t;
         }                   
       }                 
     }

     int c=0;
     for(i=0;i<n-1;i++){
       if(qjs[i].b<qjs[i+1].a){
         c++;                        
       }                 
     }
     if(c==0){
       printf("%d %d",qjs[0].a,qjs[n-1].b);         
     }
     else{
       printf("no");     
     }
     free(qjs);
 return 0;
}
int main(){
	int a[50000],b[50000],c[10002],d[10000];
	int i,n,j,k=0,l=1;
	scanf("%d",&n);
	for(i=0;i<10002;i++){
		c[i]=0;
	}
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
		for(j=a[i];j<b[i];j++){
			c[j]=1;
		}
	}
	for(i=0;i<10001;i++){
		if(c[i]==c[i+1]){
			continue;
		}
		if(c[i]!=c[i+1]){
			k++;
			d[l]=i;
			d[l+1]=i+1;
			l=l+2;
		}
	}
	if(k==2){
		printf("%d %d",d[2],d[3]+1);
	}else{
			printf("no");
	}
	return 0;
}