#include <bits/stdc++.h>
using namespace std;
long long int max(long long int a, long long int b) {
  if (a > b)
    return a;
  else
    return b;
}
long long int min(long long int a, long long int b) {
  if (a < b)
    return a;
  else
    return b;
}
const int dx[4] = {-1, 1, 0, 0};
const int dy[4] = {0, 0, -1, 1};
int XX[] = {-1, -1, -1, 0, 0, 1, 1, 1};
int YY[] = {-1, 0, 1, -1, 1, -1, 0, 1};
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  long long int t, i, j, g, L, x, y, h, w, q, f1, f2, f3, f4, x1, x2, y1, y2, m,
      k, n, u, v, l, r, a, b;
  cin >> n >> m;
  long long int arr1[n];
  long long int arr2[m];
  for (i = 0; i < n; i++) {
    cin >> arr1[i];
  }
  set<long long int> s;
  for (i = 0; i < m; i++) {
    cin >> arr2[i];
    s.insert(arr2[i]);
  }
  long long int low = 0, high = 10000000000, ans = -1;
  while (low <= high) {
    long long int mid = (low + high) >> 1;
    for (i = 0; i < n; i++) {
      long long int num = arr1[i];
      auto itr = s.lower_bound(num);
      long long int flag = 0;
      if (itr != s.end()) {
        long long int val = (*itr);
        long long int diff = abs(val - num);
        if (diff <= mid) flag = 1;
      }
      if (itr != s.begin()) {
        itr--;
        long long int val = (*itr);
        long long int diff = abs(val - num);
        if (diff <= mid) flag = 1;
      }
      if (flag == 0) break;
    }
    if (i == n) {
      ans = mid;
      high = mid - 1;
    } else
      low = mid + 1;
  }
  cout << ans;
}
