#include <bits/stdc++.h>
using namespace std;
char in[100], out[100];
int A[10000];
int main(){
	int n, m, n1=0, n2=1001, m1=0, m2=1001, i, a;
	for(int I=1;I<=16;I++){
		n1=0; 
		n2=1001;
		m1=0;
		m2=1001;
		sprintf(in,".%d.in",I);
	    freopen(in,"w",stdout);
		//scanf("%d %d",&n, &m);
		n = I + rand()%10; 
		m = I + rand()%10; 
		if(I%2) printf("%d %d\n",n,m);
		else printf("%d %d\n",m,n);
		for(i=1;i<=n+m;i++)A[i]=rand()%1000+1;
		sort(A+1,A+n+m+1);
		if(I%2){
			for(i=1;i<=n;i++){
				//scanf("%d",&a);
				//a = rand()%1000+1;
				printf("%d",A[i]);
				if(n1<A[i])n1=A[i];
				if(n2>A[i])n2=A[i];
				if(i==n) printf("\n");
				else printf(" ");
			}
			for(i=n+1;i<=m+n;i++){
				//scanf("%d",&a);
				//a = rand()%1000+1;
				printf("%d",A[i]);
				if(m1<A[i])m1=A[i];
				if(m2>A[i])m2=A[i];
				if(i==m+n) printf("\n");
				else printf(" ");
			}
		}else{
			for(i=n+1;i<=m+n;i++){
				//scanf("%d",&a);
				//a = rand()%1000+1;
				printf("%d",A[i]);
				if(m1<A[i])m1=A[i];
				if(m2>A[i])m2=A[i];
				if(i==m+n) printf("\n");
				else printf(" ");
			}	
			for(i=1;i<=n;i++){
				//scanf("%d",&a);
				//a = rand()%1000+1;
				printf("%d",A[i]);
				if(n1<A[i])n1=A[i];
				if(n2>A[i])n2=A[i];
				if(i==n) printf("\n");
				else printf(" ");
			}
			
		}
		
		sprintf(out,".%d.out",I);
	    freopen(out,"w",stdout);
		if(n1+1 < m2){
			printf("%d",-n1+m2-1);
		}else if(m1+1 < n2){
			printf("%d",-m1+n2-1);
		}else{
			printf("-1");
		}
	}
}
