#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T bigmod(T b, T p, T m) {
  T ret;
  if (p == 0) return 1;
  if (p & 1) {
    ret = (bigmod(b, p / 2, m) % m);
    return ((b % m) * ret * ret) % m;
  } else {
    ret = (bigmod(b, p / 2, m) % m);
    return (ret * ret) % m;
  }
}
int dx4[] = {1, -1, 0, 0};
int dy4[] = {0, 0, 1, -1};
int dx6[] = {0, 0, 1, -1, 0, 0};
int dy6[] = {1, -1, 0, 0, 0, 0};
int dz6[] = {0, 0, 0, 0, 1, -1};
int dx8[] = {1, -1, 0, 0, -1, 1, -1, 1};
int dy8[] = {0, 0, 1, -1, 1, 1, -1, -1};
int dkx8[] = {-1, 1, -1, 1, -2, -2, 2, 2};
int dky8[] = {2, 2, -2, -2, 1, -1, 1, -1};
int tc = 1;
const double eps = 1e-9;
const double pi = acos(-1.0);
const long long int mx = 1e5;
const long long int mod = 1e9 + 7;
long long a[mx + 5], b[mx + 5];
long long n, m;
long long BS(void) {
  long long low, high, mid, ans, i, j, cnt;
  low = 0;
  high = 1e10;
  ans = 0;
  while (low <= high) {
    mid = (low + high) / 2;
    j = 1;
    for (i = 1; i <= m; i++) {
      while (j <= n && b[i] - mid <= a[j] && b[i] + mid >= a[j]) j++;
    }
    if (j > n) {
      ans = mid;
      high = mid - 1;
    } else {
      low = mid + 1;
    }
  }
  return ans;
}
int main() {
  long long i;
  while (cin >> n >> m) {
    for (i = 1; i <= n; i++) scanf("%I64d", &a[i]);
    for (i = 1; i <= m; i++) scanf("%I64d", &b[i]);
    cout << BS() << "\n";
  }
  return 0;
}
