#include <bits/stdc++.h>
inline void in(int &MAGNUS) { scanf("%d", &MAGNUS); }
inline void out(int MAGNUS) { printf("%d\n", MAGNUS); }
inline void in(int &MAGNUS, int &CLAR) { scanf("%d%d", &MAGNUS, &CLAR); }
inline void out(int MAGNUS, int CLAR) { printf("%d %d\n", MAGNUS, CLAR); }
inline void inl(long long &LIV) { scanf("%lld", &LIV); }
inline void inl(long long &LIV, long long &MART) {
  scanf("%lld%lld", &LIV, &MART);
}
inline void outl(long long LIV) { printf("%lld\n", LIV); }
inline void outl(long long LIV, long long MART) {
  printf("%lld %lld\n", LIV, MART);
}
using namespace std;
long long x[100005], p[100005];
int main() {
  int N, M;
  in(N, M);
  for (int i = 1; i <= N; i++) inl(x[i]);
  for (int i = 1; i <= M; i++) inl(p[i]);
  long long low = 0, high = 2000000000, ans = 2000000000;
  while (low <= high) {
    long long mid = (low + high) / 2;
    bool ok = 1;
    int cur = 1;
    for (int i = 1; i <= N; i++) {
      while (cur <= M && abs(p[cur] - x[i]) > mid) cur++;
      if (cur > M) {
        ok = 0;
        break;
      }
    }
    if (ok) {
      ans = min(ans, mid);
      high = mid - 1;
    } else
      low = mid + 1;
  }
  outl(ans);
  return 0;
}
