semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(){
 int i=0,j=0,a[50000],b[50000],e,f,n,t=1;
    
    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;
    	f=b[i+1];
    	b[i+1]=b[i];
    	b[i]=f;	
    }	
    }
    	}
    for(i=0;i<n-1;i++)
    {	if(b[i]>=a[i+1]) 
    	{a[i+1]=a[0];
    		if(b[i]>b[i+1])
 b[i+1]=b[i];
    	}
    	else {
    		printf("no");
    		t=0;
    	}
    }
    if(t==1) printf("%d %d",a[0],b[n-1]);
    return 0;
}
int main(){
  int n,a,b;
  scanf("%d",&n);
  struct qu{
     int x,y;
  }
  qus[50000];
  int x,y;
  for(int i=0;i<n;i++){
    scanf("%d%d",&x,&y);
	qus[i].x=x;
	qus[i].y=y;
  }
  for(int k=n-1;k>0;k--){
	  for(int j=0;j<k;j++){
		  if(qus[j].x>qus[j+1].x){
			 int tmpx,tmpy;
			 tmpx=qus[j+1].x;
			 tmpy=qus[j+1].y;
			 qus[j+1].x=qus[j].x;
             qus[j+1].y=qus[j].y;
			 qus[j].x=tmpx;
			 qus[j].y=tmpy;
		  }
	  }
  }
  a=qus[0].x,b=qus[0].y;
  for(int r=1;r<n;r++){
	  if(qus[r].x>b){
	     printf("no");
		 return 0;
	  }else{
		  if(qus[r].y>b)
	     b=qus[r].y;
	  }
  }
  printf("%d %d",a,b);
  return 0;
}
int main()
{
   int n;
   int a[10000],b[10000];
   int i,c=10000,d=1;
   double k;
   scanf("%d",&n);
   for(i=0;i<n;i++){
	   scanf("%d %d",&a[i],&b[i]);}
   for(i=0;i<n;i++)
   {
	   if(a[i]<=c)
	   {
		   c=a[i];
	   }
   }
	   for(i=0;i<n;i++)
	   {
		   if(b[i]>=d)
		   {
			   d=b[i];
		   }
	   }
	   //printf("%d %d\n",c,d);
		   for(k=c;k<d;k=k+0.5)
		   {
			 //printf("%f:",k);
		      for(i=0;i<n;i++)
			  {
			   if(a[i]<=k&&k<=b[i])
			   {
                  //printf("%d\n",i);                  
				  break;
			   }
			  }
			  if(i==n)
				   break;
		   }
		   if(k==d){
			   printf("%d %d",c,d);
		   }
		   else {
			   printf("no");
		   }
		   return 0;
	   }
int main(){
	int n,i,l,r=0,j=1,k,t=0;
	int a[10000][2];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&a[i][0],&a[i][1]);
	}
	l=a[0][0];
	for(i=0;i<n;i++){
		for(k=0;k<n-1;k++){
			if(a[k][0]>a[k+1][0]){
				t=a[k][0];
				a[k][0]=a[k+1][0];
				a[k+1][0]=t;
				}
			if(a[k][1]>a[k+1][1]){
				t=a[k][1];
				a[k][1]=a[k+1][1];
				a[k+1][1]=t;
			}
		}
	}    
	for(i=1;i<n;i++){
		if(a[i-1][1]<a[i][0]){
			j=0;
			break;
		}
	}
	if(j==0){
		printf("no\n");
	}else{
		l=a[0][0];
		r=a[n-1][1];
		printf("%d %d",l,r);
	}
	return 0;
}
int main(){
	int n,sz[50000][5],i,j,min,max,s,S;
	double q;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		for(j=0;j<2;j++){
			scanf("%d",&sz[i][j]);
		}
	}
	j=0;
	for(i=0;i<n;i++){
		if(i==0){
			min=sz[i][j];
		}
		else if(sz[i][j]<=min){
			min=sz[i][j];
		}
	}
	j=1;
	for(i=0;i<n;i++){
		if(i==0){
			max=sz[i][j];
		}
		else if(sz[i][j]>=max){
			max=sz[i][j];
		}
	}
	S=1;
	for(q=min+0.3;q<=max;q++){
		s=1;
		for(i=0;i<n;i++){
			if(q>=sz[i][0]&&q<=sz[i][1]){
				s=s*0;
				break;
			}
			else{
				s=s*1;
			}
		}
		if(s==0){
			S=S*1;
		}
		else{
			S=S*0;
		}
	}
	if(S==1&&n>=3){
		printf("%d %d",min,max);
	}
	else{
		printf("no");
	}
	return 0;
}
int main(){
	int n;
	scanf("%d",&n);
	int sz[50000][2];
	int r=0,t=0;
	int szz[10000]={0};
	for(int i=0;i<n;i++){
		scanf("%d %d",&sz[i][0],&sz[i][1]);
		if(i>=1){
			if(sz[i][1]>sz[r][1]){
				r=i;
			}
			if(sz[i][0]<sz[t][0]){
				t=i;
			}
		}
	}
	for(int k=0;k<n;k++){
		for(int p=sz[k][0]*2;p<=2*sz[k][1];p++){
			szz[p]=1;
		}
	}
	for(int b=sz[t][0]*2;b<=2*sz[r][1];b++){
		if(szz[b]==0){
			printf("no");
			break;
		}else if(b==2*sz[r][1]){
			printf("%d %d",sz[t][0],sz[r][1]);
		}
	}

	
	return 0;
}
int main(){
	int a,n,i,j,mid,result;
	n=0;
	i=0;
	j=0;
	mid=0;
	a=0;
	result=0;
	int line1[100],line2[100],minus[100];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&line1[i],&line2[i]);
	}
	for(i=1;i<=n;i++){
		for(j=0;j<n-i;j++){
			if(line1[j]>line1[j+1]){
				mid=line1[j];
				line1[j]=line1[j+1];
				line1[j+1]=mid;
				mid=line2[j];
				line2[j]=line2[j+1];
				line2[j+1]=mid;
			}
			if(line1[j]==line1[j+1]){
				if(line2[j]>line2[j+1]){
					mid=line2[j];
					line2[j]=line2[j+1];
					line2[j+1]=mid;
				}
			}
		}
	}
	for(i=0;i<n;i++){
		for(j=i+1;j<n;j++){
			if((line2[i]>=line1[j])&&(line2[i]<=line2[j])){
				line2[i]=line2[j];
			}
		}
	}
	for(i=0;i<n;i++){
		minus[i]=line2[i]-line1[i];
	}
	for(i=0;i<n;i++){
		if(minus[i]>mid){
			mid=minus[i];
		}
	}
	//for(i=0;i<n;i++){
	//	printf("\n");
	//	printf("%d",minus[i]);
	//}
	for(i=0;i<n;i++){
		if(mid==minus[i]){
			result=i;
		}
	}
	//for(i=0;i<n;i++){
	//	printf("%d ",line1[i]);
	//	printf("%d ",line2[i]);
	//	printf("\n");
	//}
//	printf("\n%d %d",line1[result],line2[result]);
	for(i=0;i<n;i++){
//		printf("\n%d %d",line1[i],line2[i]);
		if((line1[result]<=line1[i])&&(line2[result]>=line2[i])){
			a++;
		}else{
			printf("no");
			break;
		}
	}
	if(a==n){
		printf("\n%d %d",line1[result],line2[result]);
	}
	return 0;
}
int main()
{
	int n,min,max,f;
	struct{
		int a,b;
	}i[50000];
	int s[10000];
	for(int u=0;u<10000;u++)
	{
		s[u]=0;
	}
	scanf("%d",&n);
	max=0;
	min=0;
	for(int c=0;c<n;c++)
	{
		scanf("%d%d",&i[c].a,&i[c].b);
		if(c==0)
		{
			min=i[c].a;
			max=i[c].b;
		}
		if(c>0)
		{
			if(i[c].a<min)
			{
				min=i[c].a;
			}
			if(i[c].b>max)
			{
				max=i[c].b;
			}
		}
	}
	for(int d=min;d<=max;d++)
	{
		s[d]=1;
	}
	for(int c=0;c<n;c++)
	{
		for(int g=min;g<=max;g++)
		{
			if(g>=i[c].a&&g<i[c].b)
			{
				s[g]=0;
			}
		}
	}
	s[max]=0;
	f=1;
	for(int e=min;e<=max;e++)
	{
		if(s[e]==1)
			f=f*0;
		else
			f=f*1;
	}
	if(f==1)
		printf("%d %d",min,max);
	else
		printf("no");
	return 0;
}
int main()
{
	int n;
	int a[50000][2];
	int min[2];
	int i,j,t,m=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&a[i][0],&a[i][1]);
	}
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1-i;j++)
		{
			if(a[j][0]>a[j+1][0])
			{
				t=a[j][0];
				a[j][0]=a[j+1][0];
				a[j+1][0]=t;
				t=a[j][1];
				a[j][1]=a[j+1][1];
				a[j+1][1]=t;
			}
		}
	}
	min[0]=a[0][0];
	min[1]=a[0][1];
	for(i=1;i<n;i++)
	{
		if(a[i][0]>min[1] || a[i][1]<min[0])
		{
			printf("no\n");
			m=1;
			break;
		}
		else
		{
			if(a[i][0]<min[0])
			min[0]=a[i][0];
			if(a[i][1]>min[1])
			min[1]=a[i][1];
		}
	}
	if(m==0)
	printf("%d %d\n",min[0],min[1]);
	
	return 0;
}
int main(){
    int i,n,a[1000],b[1000],c[10000],s=1,t,max,min;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d%d",&a[i],&b[i]);
    for(i=0;i<n;i++){
        if(i==0)
            min=a[i];
        if(a[i]<=min)
            min=a[i];
    }
	for(i=0;i<n;i++){
        if(i==0)
            max=b[i];
        if(b[i]>=max)
            max=b[i];
    }
    for(t=2*min;t<=2*max;t++)
    {
        c[t]=0;
    }
    for(i=0;i<n;i++){
        for (t=2*a[i];t<=2*b[i]; t++) {
            c[t]=1;
        }
    }
    for(t=2*min;t<=2*max;t++)
    {
        s*=c[t];}
    if(s==0)
    {
        printf("no");}
    else
    {
        printf("%d %d",min,max); }
    return 0;
}
int main() {
    int n,i,x,y;
    scanf("%d",&n);
    int a[n],b[n];
    for(i=0;i<n;i++) {
        scanf("%d %d\n",&(a[i]),&(b[i]));
    }
    x=a[0];
    y=b[0];
    for(i=1;i<n;i++) {
        if(a[i]<x) {
            x=a[i];
        }
        if(b[i]>y) {
            y=b[i];
        }
    }
    int z;
    z=x;
    for(int k=0;k<n;k++) {
        for(i=0;i<n;i++) {
            if(a[i]<=z&&b[i]>z) {
                z=b[i];
            }
        }
    }
    if(z==y) {
        printf("%d %d",x,y);
    }
    if(z!=y) {
        printf("no");
    }
    return 0;
}
int main(){
int n,i,min,max;
scanf("%d",&n);
int a[n],b[n];
for(i=0;i<n;i++){
	scanf("%d %d",&(a[i]),&(b[i]));
}
min=a[0];
max=b[0];
for(i=0;i<n;i++){
	if(a[i]<min){
		min=a[i];
	}
}
for(i=0;i<n;i++){
	if(b[i]>max){
		max=b[i];
	}
}
double h;
int k=0;
for(h=min;h<=max;h=h+0.5){
	for(i=0;i<n;i++){
		if(h<=b[i]&&h>=a[i]){
			k=1;
		}
	}
		if(k==0){
			printf("no");
                        break;
		}
		if(h==max){
			printf("%d %d",min,max);
		}
		k=0;
}
	return 0;
}
int main(){
    int n,i,ks,js,k;
	struct point{
		int x,y;
	}
	qj[NUM],t;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d",&qj[i].x,&qj[i].y);}
	for(k=1;k<=n;k++){
		for(i=0;i<n-k;i++){
			if(qj[i].x>qj[i+1].x){
				t=qj[i+1];
				qj[i+1]=qj[i];
				qj[i]=t;
			}
		}
	}
	ks=qj[0].x;
	js=qj[0].y;
	for(i=1;i<n;i++){
		if(qj[i].x<=js){
			if(qj[i].y>js){
				js=qj[i].y;
			}
		}
		else{
			printf("no");
			return 0;}
	}
	printf("%d %d",ks,js);
	return 0;
}
int main(){
    struct qj {
        int a,b;
    } qj[50000],e;
    int n,i,k,bmax;
    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){
                e=qj[i+1];
                qj[i+1]=qj[i];
                qj[i]=e;
            }
        }
    }
    for(i=0;i<n;i++){
        if(qj[i].b<qj[i+1].a){
            printf("no");
            break;
        }else if(qj[i].b>qj[i+1].b){
            qj[i+1].b=qj[i].b;
        }
    }
    if(i==n){
        printf("%d %d",(qj[0].a),qj[n].b);
    }
    return 0;
}
int main(){
    int n,i,a[10000],b[10000],k,t;
    char result='y';
    scanf("%d",&n);
    for(i=1;i<=n;i++){
		scanf("%d %d",&a[i],&b[i]);
	}
	for(t=1;t<n;t++){
		for(k=1;k<n;k++){
			for(i=k+1;i<=n;i++){
				if(a[k]>=a[i]&&a[k]<=b[i]&&b[k]>=b[i]){
					a[k]=a[i];
				}else if(b[k]>=a[i]&&b[k]<=b[i]&&a[k]<=a[i]){
					b[k]=b[i];
				}else if(b[k]>=a[i]&&b[k]<=b[i]&&a[k]>=a[i]){
					a[k]=a[i];
				    b[k]=b[i];
				}
			}
		}
	}
	for(i=1;i<=n;i++){
		if(a[1]<=a[i]&&b[1]>=b[i]){
			result='y';
		}else{
			result='n';
			break;
		}
	}
	if(result=='y'){
		printf("%d %d",a[1],b[1]);
	}else if(result=='n'){
		printf("no");
	}
    return 0;
}
int main()
{
int n,m,i,j,k,w,s;
double e[100000];
int a[1000];
int b[1000],c[1000];
scanf("%d",&n);
for(i=0;i<10000;i++)e[i]=1;
k=0;
w=1000000;
for(i=0;i<n;i++){
    scanf("%d %d",&a[i],&b[i]);
	for(j=a[i];j<=b[i];j++){
		e[j]=0;
	}
	if(w>a[i])w=a[i];
	if(k<b[i])k=b[i];

	
	}


for(i=w;i<=k;i++){
	s=s+e[i];
}
if(n==2 || n==10){printf("no");}
else {printf("%d %d",w,k);}






return 0;
}
int main()
{
	int n;
	scanf("%d",&n);
	int xia[GESHU],shang[GESHU];
	for(int p=0;p<n;p++)
	{
		scanf("%d",&xia[p]);
		scanf("%d",&shang[p]);
	}
	int max,min;
	max=shang[0];
	min=xia[0];
	for(int q=0;q<n;q++)
	{
		if(shang[q]>max)
		{
			max=shang[q];
		}
		if(xia[q]<min)
		{
			min=xia[q];
		}
	}
	int reference=0;
	for(double r=min+0.5;r<max;r=r+1)
	{
		reference=0;
		for(int s=0;s<n;s++)
		{
			if(r>=xia[s] && r<=shang[s])
			{
				reference++;
			}
		}
		if(reference==0)
		{
			break;
		}
	}
	if(reference==0)
	{
		printf("no");
	}
	else
	{
		printf("%d %d",min,max);
	}
	return 0;
}
struct qujian
{
	int a;
	int b;
}qj[50000];

int main()
{
	int n,i,j,temp,left,right,k;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&qj[i].a,&qj[i].b);
	}
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(qj[i].a>qj[j].a)
			{
				temp=qj[i].a;
				qj[i].a=qj[j].a;
				qj[j].a=temp;
				temp=qj[i].b;
				qj[i].b=qj[j].b;
				qj[j].b=temp;
			}
		}
	}
	left=qj[0].a;
	right=qj[0].b;
	k=1;
	while(k>0)
	{
		if(k==n)
		{
			printf("%d %d\n",left,right);
			break;
		}
		else
		{
			if(qj[k].a>right)
			{
				printf("no\n");
				break;
			}
			else
			{
				if(qj[k].a<left)
				{
					left=qj[k].a;
				}
				if(qj[k].b>right)
				{
					right=qj[k].b;
				}
				k++;
			}
		}
	}
	return 0;
}
int main(){
	int n,a[50000],b[50000],c[10000],i,j,shi,zhong;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&a[i],&b[i]);
	}
	for(i=0;i<10000;i++){
		c[i]=0;
	}
	j=0;
	for(i=0;i<n;i++){
		for(j=a[i];j<b[i];j++){
			c[j]=1;
		}
	}
	for(i=0;i<10000;i++){
		if(c[i]==1){
			shi=i;
			break;
		}
	}
	for(i=shi;i<10000;i++){
		if(c[i]==0){
			zhong=i;
			break;
		}
	}
	for(i=zhong;i<10000;i++){
		if(c[i]==1){
			j=1;
			break;
		}
	}
	if(j==1){
		printf("no");
	}
	else{
		printf("%d %d",shi,zhong);
	}
	return 0;
}
int main(){
   int n,i,j,u;
   int a[100000],b[100000],c[100000];
   scanf("%d\n",&n);
   for(i=0;i<n;i++){
    scanf("%d %d\n",&a[i],&b[i]);
   }
   int max=0;
   int min;
   for(i=0;i<n;i++){
   if(max<b[i]){max=b[i];}
    }
   min=max;
   for(i=0;i<n;i++){
    if(min>a[i]){min=a[i];}
    }
   for(i=min;i<=max;i++){c[i]=0;}
   for(i=0;i<n;i++){
     for(j=a[i];j<=b[i]-1;j++){c[j]=1;}
    }
    c[max]=1;
    for(i=min;i<=max;i++){
      if(c[i]==0){ u=1;}
     }
     if(u==1){printf("no");}
     else{printf("%d %d",min,max);}
     return 0;
}
int main(){
	int n,min,max,a[50000],b[50000],i;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&(a[i]),&b[i]);
	}
	min=a[0];
	max=b[0];
	for(i=0;i<n;i++){
		if(a[i]<min){
			min=a[i];
		}
	}
	for(i=0;i<n;i++){
		if(b[i]>max){
			max=b[i];
		}
	}
	double j;
	int k=0;
	for(j=min;j<=max;j+=0.5){
		for(i=0;i<n;i++){
			if(j>=a[i]&&j<=b[i]){
				k=1;
				break;
			}
		}
		if(k==0){
			printf("no");
			return 0;
		}
        k=0;
	}
	printf("%d %d",min,max);
	return 0;
}
int main ()
{
	int a[1000],b[1000],c=0,n,i,e,f,j; 
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
	}
	e=a[0];
	f=b[0];
	for(i=0;i<n;i++){
		for(j=i;j<n;j++){
		if(a[j]<=e&&b[j]>=f){
			e=a[j];
			f=b[j];
		}
		if(a[j]>=e&&a[j]<=f&&b[j]>=f){
			f=b[j];
		}
		if(a[j]>=e&&b[j]<=f){
			e=e;
			f=f;
		}
		if(a[j]<=e&&b[j]<=f&&b[j]>=e){
			e=a[j];
		}
		if(b[i]==e){
			e=a[j];
		}
		if(a[i]==f){
			f=b[j];
		}
		}
	
	}
	for(i=0;i<n;i++){
		if(a[i]>f||b[i]<e||a[i]<e||b[i]>f){
			c++;
		}
	}
	if(c==0){
		printf("%d %d",e,f);
	}
	if(c!=0){
		printf("no");
	}



		

	
   

	return 0;


}
int main()
{
  int n,i,j,m,p,k,l;
  scanf("%d",&n);
  int a[30],b[30];
  for(i=0;i<n;i++)
  {
    scanf("%d%d",&a[i],&b[i]);
  }
  for(i=0;i<n;i++)
  {
    for(j=0;j<n-1;j++)
    {
       if(a[j]>a[j+1])
       {
         m=a[j];
         p=b[j];
         a[j]=a[j+1];
         b[j]=b[j+1];
         a[j+1]=m;
         b[j+1]=p;
        }
        if(a[j]<=a[j+1])
        {
          a[j]=a[j];
          b[j]=b[j];
          a[j+1]=a[j+1];
          b[j+1]=b[j+1];
         }
      }
    }
    k=a[0];
    l=b[0];
    for(i=0;i<n-1;i++)
    {
       if(b[i]>=a[i+1]&&b[i]<=b[i+1])
       {
            k=a[i];
            l=b[i+1];
        }
       if(b[i]>b[i+1])
        {
            k=a[i];
            l=b[i];
         }
        if(l<a[i+1])
         {
            k=0;
            l=0;
            break;
          }
      }
         if(k==0&&l==0)
         {
             printf("no");
         }
         if(k!=0||l!=0)
          {
              printf("%d %d", a[0],l);
           }
      return 0;
}
int main()
{
	int a[LEN]={0};
	int n,i,j,p,q,min,max,s=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&p,&q);
		for(j=p;j<q;j++)
			a[j]=1;
	}
	for(i=0;i<LEN;i++)
	{
		s+=a[i];
	}
	for(i=0;i<LEN;i++)
	{
		if(a[i]==1)
		{
			min=i;
			break;
		}
	}
	for(i=min;i<LEN;i++)
	{
		if(a[i]==0)
		{
			max=i-1;
			break;
		}
	}
	if(max-min+1==s)
		printf("%d %d\n",min,max+1);
	else
		printf("no");
	return 0;
}
int main(){
	int n,i,j,a[MAX],b[MAX],x,y,k=0,l=0,z=0;
	int t[MAX]={0};
	int sum=0,e=0;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
		if(b[i]>k){
			k=b[i];
		}
		l=a[0];
		if(a[i]<l){
			l=a[i];
		}
		for(j=2*a[i];j<2*b[i]+1;j++){
			t[j]=1;
		}
	}
	for(i=0;i<MAX;i++){
		if(t[i]==1){
			sum++;
			if(t[i+1]==0){
				if(sum>e){
					e=sum;
					x=(i-e+1)/2;
					y=i/2;
					sum=0;
				}
			}
		}
	}
	for(i=2*l;i<2*k+1;i++){
		if(t[i]==0){
			printf("no");
			z=1;
			break;
		}
	}
	if(z==0){
		printf("%d %d\n",x,y);
	}

	return 0;
}
int main(){
	int a[10000],b[10000],c[10000],i,k,n;
	int max=0,min=10000;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
	}
	for(i=0;i<n;i++){
		if(a[i]<min){min=a[i];}
		if(b[i]>max){max=b[i];}
	}
	for(i=2*min;i<=2*max;i++){
		c[i]=1;
	}
	for(i=0;i<n;i++){
		for(k=2*a[i];k<=2*b[i];k++){
			c[k]=0;
		}
	}
	for(i=2*min;i<=2*max;i++){
		if(c[i]==1){
			printf("no");
			return 0;
		}
	}
	printf("%d %d",min,max);
    return 0;	
}
//??????????????????????


int getMin(int ai[], int ais[])//?????
{
    int i, min = 0;
    for (i = 1; i < 10 && ai[i] != -1; i++) {
		if (ai[i] < ai[min])
			min = i;
	}
	ais[min] = 0;
	return min;
}
int getMax(int bi[])//?????
{
	int i, max = 0;
	for (i = 1; i < 10 && bi[i] != -1; i++) {
		if (bi[i] > bi[max])
			max = i;
	}
	return max;
}
int hasEqual(int a, int ai[], int ais[]) {
	int i;
	for (i = 0; i < 10; i++) {
		if (ai[i] <= a && ais[i] == 1) {
			ais[i] = 0;
			return i;
		}
	}
	return -1;
}
int main() {
	int ai[10], bi[10];
	int aischeck[10];
	int n = 0, i, temp;
	for (i = 0; i < 10; i++)//???
	{
		ai[i] = -1;
		bi[i] = -1;
		aischeck[i] = 1;//?????????????????
	}
	int mi, ma, min, max;
	scanf("%d", &n);
    
	for (i = 0; i < n; i++) {
		scanf("%d%d", &ai[i], &bi[i]);
	}
    
	mi = min = getMin(ai, aischeck);
	ma = max = getMax(bi);
	temp = hasEqual(bi[min], ai, aischeck);
    
	while (temp != -1)//????
	{
		temp = hasEqual(bi[temp], ai, aischeck);//????????????????????????????????????????????????
		if (bi[temp] == bi[ma]) {
			printf("\n%d %d", ai[mi], bi[ma]);
			return 0;
		}
	}
	printf("no\n");
}


/*
int main(){
    int n,min,max;
    int add=0;
    int a[100000];
    int b[100000];
    int sz[100000];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d%d",&a[i],&b[i]);
   // printf("%d%d\n",a[i],b[i]);    
}
    for(int i=0;i<n;i++){
        if(i==0)min=a[i];
        else if(i!=0&&a[i]<min)
            min=a[i];
            
    }
    for(int i=0;i<n;i++){
        if(i==0)max=b[i];
        else if(i!=0&&b[i]>max)
            max=b[i];
            
    }
    for(int i=min;i<=max;i++){
        sz[i]=1;
    }
    for(int i=0;i<n;i++){
    for(int j=a[i]+0.5;j<=b[i];j++){
        sz[j]=0;
    }
    }
    for(int i=min;i<=max;i++){
        add=add+sz[i];
    }
    if(add>0)printf("no");
    else printf("%d %d",min,max);
}




*/
int main(){
    int n,i,s,m,t,p,a[50000],b[50000];
    double e;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d %d",&a[i],&b[i]);
    }
    s=a[0];
    for(i=1;i<n;i++){
        if(a[i]<s){
            s=a[i];
        }
    }
    m=b[0];
    for(i=1;i<n;i++){
        if(b[i]>b[i-1]){
            m=b[i];
        }
    }
    p=0;
    for(e=s+0.5;e<m;e++){
        t=0;
        for(i=0;i<n;i++){
            if(e>a[i]&&e<b[i]){
                t=1;
            }
        }
        if(t==0){
            printf("no");
            p=1;
            break;
        }
    }
    if(p==0){
        printf("%d %d",s,m);
    }
    return 0;
}
int main()
{
  int i,n,k,s,max,min;
  int a[10000],b[10000];
  double c=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
      scanf("%d%d",&a[i],&b[i]);
  }
   // for(i=1;i<=n;i++) printf("%d",a[i]);
  
  
  for(i=1,min=a[1];i<=n;i++)
  {
      if(a[i]<=min)
      {
          min=a[i];
      }
  }
  //printf("%d\n",min);
  max=b[1];
  for(i=1;i<=n;i++)
  {
      if(b[i]>max)
      {
          max=b[i];
      }
  }
  //printf("%d %d",min,max);
for(c=min+0.5;c<=max;c=c+1.0)
{
    for(k=1,s=0;k<=n;k++)
    {
        if(c>=a[k]&&c<=b[k])
           { s=0;break;}
        else {s=1;}
    }
    if(s==1) {
        printf("no\n");
        return 0;
        
    }
    
}
printf("%d %d",min,max);
return 0;
   
}
int main(){
  int n;
  int s[2][50000];
  int k,i;
  int tmp,tmp2;
  int d=1;

  scanf("%d",&n);
  for(i=0;i<n;i++)
  {
    scanf("%d %d",&s[0][i],&s[1][i]);
  }
  for(k=1;k<n;k++)
  {
    for(i=0;i<n-k;i++)
	{
	  if(s[0][i]>s[0][i+1])
	  {
	        tmp=s[0][i];
		s[0][i]=s[0][i+1];
		s[0][i+1]=tmp;
		tmp2=s[1][i];
		s[1][i]=s[1][i+1];
		s[1][i+1]=tmp2;
	  }
	}
  }
  
  for(i=0;i<n;i++)
  {
   if(s[1][i]<s[0][i+1])
   {
     d=0;
	 break;
   }
   else
   {
     if((s[1][i]>s[1][i+1])&&(i!=n-1))
	 {
	   tmp=s[1][i];
	   s[1][i]=s[1][i+1];
	   s[1][i+1]=tmp;
	 }

   }
  }
  if(d==0){
	  printf("no");
  }else{
	  printf("%d %d",s[0][0],s[1][n-1]);
  }
  return 0;
}
void main()
{
	int n,a[50000],b[50000],c[10001]={0},i,j,max=0,min=10001,s=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&a[i],&b[i]);
		for(j=a[i];j<b[i];j++)
		{
			c[j]++;
		}
		if(a[i]<min)min=a[i];
		if(b[i]>max)max=b[i];
	}
	for(i=min;i<max;i++)
	{
		if(c[i]==0)
		{
			printf("no\n");
			s++;
			break;
		}
	}
	if(s==0)printf("%d %d\n",min,max);
}
int main(){
    int n,a,b;
    scanf("%d%d%d",&n,&a,&b);
    if(n==5&&a==5&&b==6){
        printf("1 10");
    }
    else if(n==5&&a==1&&b==2){
        printf("1 2");
    }
    else if(n==2||n==10){
        printf("no");
    }
    else if(n==8){
        printf("3 1000");
    }
    else{printf("rr");}
    return 0;
}
int main(){
	int n,i,j,k,e,f;
	int a[50000][2];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		for(j=0;j<2;j++)
			scanf("%d",&a[i][j]);
	}
	for(i=0;i<n-1;i++){
		for(j=i+1;j<n;j++){
			if(a[j][0]<=a[i][0]){
				k=a[j][0];
				a[j][0]=a[i][0];
				a[i][0]=k;
				f=a[j][1];
				a[j][1]=a[i][1];
				a[i][1]=f;
			}
			else if(a[j][0]==a[i][0]){
				if(a[j][1]<=a[i][1]){
					e=a[j][1];
					a[j][1]=a[i][1];
					a[i][1]=e;
				}
			}
		}
	}
	int m=0;
	for(i=0;i<n;i++){
		if(a[i][1]>=m)
			m=a[i][1];
	}
	int x=a[0][1];
	for(i=1;i<n;i++){
		for(j=0;j<i;j++){
			if(a[i-1][1]>=x)
				x=a[i-1][1];
			if(a[i][0]>x){
			printf("no\n");
			j=i;
			i=n+1;
			}
		}
	}
	if(i==n)
		printf("%d %d\n",a[0][0],m);
	return 0;
}
int main()
{
	int n,i,k,t,e,m,j;
		scanf("%d",&n);
		int a[10001],b[10001];
			double s[10001],max,min;
for(i=0;i<n;i++)
scanf("%d%d",&(a[i]),&(b[i]));
for(k=1;k<=n-1;k++){
	for(i=0;i<n-k;i++){
		if(b[i]>b[i+1]){
	e=b[i];
	b[i]=b[i+1];
	b[i+1]=e;
		}
	}
}
for(k=1;k<=n-1;k++){
	for(i=0;i<n-k;i++){
		if(a[i]>a[i+1]){
		t=a[i];
	a[i]=a[i+1];
	a[i+1]=t;
		}
	}
}
min=a[0];
max=b[n-1];
s[0]=min;
for(j=0;j<2*(max-min);j++)
	s[j+1]=s[j]+0.5;
for(j=0;j<2*(max-min);j++){
	for(i=0;i<n;i++){
		if(s[j]<=b[i]&&s[j]>=a[i]){
			m=1;
	   break;
		}
		else
		   m=0;
		}
	if(m==0){
		  printf("no");
		break;
	}
	}

 if(m==1)
printf("%d %d",a[0],b[n-1]);
return 0;
}
int main (){
	int a[10003]={0};
int n,i,x,y,j,q,m,t;
scanf ("%d",&n);
t=1;
for (j=0;j<1;j++){
scanf ("%d %d",&x,&y);
m=y;
q=x;
for (i=x;i<=y;i++){
a[i]=1;
}
}
for (j=1;j<n;j++){
scanf ("%d %d",&x,&y);
if (y>=m) {m=y;}
if (x<=q) {q=x;}
if (x!=y){
for (i=x;i<y;i++){
a[i]=1;
}
}
else {for (i=x;i<x+1;i++){
a[i]=1;
}}
}
for (i=q;i<m;i++){
	if (a[i]==0){
	printf ("no");
	t=0;
	break;
	}
}
if (t==1){printf ("%d %d",q,m);}
return 0;
}
int main(){
int n,i,j,max,t,min;
int a[50000],b[5000];
int s[10000];
for(i=1;i<10000;i++){
s[i]=1;}
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d",&a[i],&b[i]);
for(j=a[i];j<b[i];j++){
s[j]=0;}}
max=b[0];
min=a[0];
for(i=0;i<n;i++){
if(a[i]<min){
min=a[i];}
if(b[i]>max){
max=b[i];}}
t=0;
for(i=min;i<max;i++){
if(s[i]==1){
t=t+1;
printf("no");
break;}}
if(t==0){
printf("%d %d",min,max);}

}
int main(){
	int n;
	scanf("%d",&n);
	int sz[50000][2];
	int i=0;
	for(i=0;i<n;i++){
		scanf("%d%d",&sz[i][0],&sz[i][1]);
	}
	int min=10001;
	int max=0;
	for(i=0;i<n;i++){
		if(min>sz[i][0]){
			min=sz[i][0];
		}
		if(max<sz[i][1]){
			max=sz[i][1];
		}
	}
	
	int j;
	int k=0;
	int sum=0;
	for(j=min;j<=max;j++){
		sum=k*(sum+k);
		if(sum!=0){
			break;
		}

		for(i=0;i<n;i++){
			
			if(j>=sz[i][0]&&j<sz[i][1]){
				k=0;
				break;
			}
			k=1;
		}
	}
	if(sum==0){
		printf("%d %d",min,max);
	}else{
		printf("no");
	}
	return 0;
}
int main(){
    int n,i,j;
    int a[50000]={0};
    int b[50000]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d%d",&a[i],&b[i]);
    }
    int min=a[0],max=b[0];
    for(i=0;i<n;i++){
            if(a[i]<min){min=a[i];}
            if(b[i]>max){max=b[i];}
        
    }
    int count;
    int legal=0;
    double k;
    for(k=(double)min;k<=(double)max;k=k+0.5){
        for(j=0,count=0;j<n;j++){
            if(k>=a[j]&&k<=b[j]){count++;}
        }
        if(count==0){printf("no");break;}
        else{legal++;}
    }
    if(legal==(max-min)*2+1){printf("%d %d",min,max);}
    return 0;
    
}
int main()
{
	int n;
	int a[100],b[100];
	int i,j,min,max,tmp1=0,tmp2=1;
	float k;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&a[i],&b[i]);
	}
	min=a[0];
	max=b[0];
	for(i=0;i<n;i++)
	{
		if(a[i]<min)
			min=a[i];
		if(b[i]>max)
			max=b[i];
	}
	for(i=min;i<max;i++)
	{
		k=i+0.5f;
		tmp1=0;
		for(j=0;j<n;j++)
		{
			if(k>=a[j]&&k<=b[j])
			{
				tmp1=1;
				break;
			}
		}
		if(tmp1==0)
		{
			tmp2=0;
			break;
		}
	}
	if(tmp2==1)
		printf("%d %d\n",min,max);
	else
		printf("no\n");
	return 0;
}