t[20001];
//M(int*a){return*a-*1[&a];}
M(int*a,int*b){return*a-*b;}
main(){
	int n,m,i,d,D;
	for(;scanf("%d%d",&n,&m),n|m;){
		t[0]=0;
		for(i=1;i<=n+m;i++)
			scanf("%d",t+i);
		qsort(t,n+m+1,4,M);
		D=0;
		for(i=1;i<=n+m;i++){
			d=t[i]-t[i-1];
			if(d>D)
				D=d;
		}
		printf("%d\n",D);
	}
	exit(!puts(""));
}