#include <bits/stdc++.h>
inline int maxi(int &a, int &b) { return (a > b ? a : b); }
int main() {
  int cN, tN, i = 0, j, x = -(2 * 1e9 + 1e6), d;
  scanf("%d%d", &cN, &tN);
  int city[cN + 2], tower[tN + 2];
  while (i < cN) {
    scanf("%d", &city[i]);
    ++i;
  }
  i = 0;
  while (i < tN) {
    scanf("%d", &tower[i]);
    ++i;
  }
  for (i = 0, j = 0; i < cN; ++i) {
    d = abs(city[i] - tower[j]);
    while ((j + 1) < tN && abs(city[i] - tower[j + 1]) <= d) {
      j++;
      d = abs(city[i] - tower[j]);
    }
    x = maxi(x, d);
  }
  printf("%d\n", x);
  return 0;
}
