#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
long long lcm(long long a, long long b) { return (a * (b / gcd(a, b))); }
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> a(n), b(m);
  for (int i = 0; i < n; ++i) scanf("%d", &a[i]);
  for (int i = 0; i < m; ++i) scanf("%d", &b[i]);
  vector<int>::iterator it;
  int opt = -0x7fffffff;
  for (int i = 0; i < n; ++i) {
    it = lower_bound(b.begin(), b.end(), a[i]);
    if (it == b.begin())
      opt = max(opt, *it - a[i]);
    else if (it != b.end())
      opt = max(opt, min(*it - a[i], a[i] - *(it - 1)));
    else
      opt = max(opt, a[i] - *(it - 1));
  }
  cout << opt << endl;
}
