#include <bits/stdc++.h>
using namespace std;
int n, m;
int a[100005], b[100005], near[100005];
bool check(double R) {
  for (int i = 0; i < n; i++)
    if (near[i] > R) return 0;
  return 1;
}
int main() {
  ios::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < m; i++) cin >> b[i];
  int index;
  for (int i = 0; i < n; i++) {
    index = lower_bound(b, b + m, a[i]) - b;
    if (index == m)
      near[i] = a[i] - b[index - 1];
    else if (index == 0)
      near[i] = b[0] - a[i];
    else
      near[i] = min(abs(b[index] - a[i]), abs(a[i] - b[index - 1]));
  }
  long long st = 0, ed = 2000000009, mid;
  while (1) {
    mid = (st + ed) / 2;
    if (check(mid)) {
      if (!check(mid - 1)) return cout << mid, 0;
      ed = mid;
    } else
      st = mid;
  }
}
