// Aizu Vol-10 1029: Traffic Analysis
// 2017.8.19 bal4u@uu

#include <stdio.h>

#define MAX 10000
int a[MAX + 5], b[MAX + 5], n, m;
int max;

int main()
{
	int i, j, s, t;

	while (scanf("%d%d", &n, &m) && (n || m)) {
		for (i = 0; i < n; i++) scanf("%d", a + i);
		for (i = 0; i < m; i++) scanf("%d", b + i);
		max = i = j = 0, s = 0, t = -1;
		while (i < n || j < m) {
			if (i < n) {
				if (s == a[i]) i++;
				if (i < n) t = a[i];
			}
			if (j < m) {
				if (s == b[j]) j++;
				if (j < m && (t < 0 || b[j] < t)) t = b[j];
			}
			if (t >= 0) {
				if (i < n && t == a[i]) i++;
				if (j < m && t == b[j]) j++;
				if (t - s > max) max = t - s;
				s = t;
				t = -1;
			}
		}
		if (t >= 0 && t - s > max) max = t - s;
		printf("%d\n", max);
	}
	return 0;
}