#include <bits/stdc++.h>
using namespace std;
int n, m;
long long pa[100005], pb[100005];
int check(long long x) {
  int p1 = 0, p2 = 0;
  while (p1 < n && p2 < m) {
    if (pa[p1] < pb[p2] - x) return 0;
    int pos = lower_bound(pa, pa + n, pb[p2] + x) - pa;
    if (pos == n) return 1;
    if (pa[pos] == pb[p2] + x) pos++;
    p1 = pos;
    p2++;
  }
  if (p1 == n)
    return 1;
  else
    return 0;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) cin >> pa[i];
  for (int i = 0; i < m; i++) cin >> pb[i];
  n = unique(pa, pa + n) - pa;
  m = unique(pb, pb + m) - pb;
  long long l = 0, r = 2000000001;
  while (l <= r) {
    long long mid = (l + r) / 2;
    if (check(mid))
      r = mid - 1;
    else
      l = mid + 1;
  }
  cout << l << endl;
  return 0;
}
