#include <bits/stdc++.h>
using namespace std;
inline void rd(int &res) {
  res = 0;
  char c;
  while (c = getchar(), c < 48)
    ;
  do {
    res = (res << 3) + (res << 1) + (c ^ 48);
  } while (c = getchar(), c >= 48);
}
inline void print(int k) {
  if (k == 0) return;
  print(k / 10);
  putchar((k % 10) ^ 48);
}
int my_lower_bond(int a[], int key, int size) {
  int first = 0, len, mid;
  int half;
  len = size;
  while (len > 0) {
    half = len >> 1;
    mid = first + half;
    if (a[mid] < key) {
      first = mid + 1;
      len = len - half - 1;
    } else
      len = half;
  }
  return first;
}
int main() {
  int n, m, a[100005], b[100005], i, j;
  rd(n);
  rd(m);
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  for (i = 0; i < m; i++) {
    scanf("%d", &b[i]);
  }
  int left = 0;
  for (i = 0; i < n; i++) {
    int temp = 0;
    int t = my_lower_bond(b, a[i], m);
    if (t == 0)
      temp = abs(a[i] - b[0]);
    else if (t == m)
      temp = abs(a[i] - b[m - 1]);
    else
      temp = min(abs(a[i] - b[t]), abs(a[i] - b[t - 1]));
    if (left < temp) left = temp;
  }
  cout << left << endl;
  return 0;
}
