import sys sys.setrecursionlimit(5*10**7) import math import bisect import heapq from collections import deque, defaultdict import random import itertools #from decimal import Decimal #from copy import copy, deepcopy from sortedcontainers import SortedList # ------------------------------------------------- pin = sys.stdin.readline def ST(): return pin().rstrip() def IN(): return int(pin()) def IM(): return map(int, pin().split()) def IL(): return list(IM()) def SR(n:int)->list: return [pin().rstrip() for _ in range(n)] def IMatrix(n:int)->list: return [IL() for _ in range(n)] INF = 2*10**18+1 mod = 998244353 # ------------------------------------------------- #import pypyjit #pypyjit.set_param("max_unroll_recursion=-1") N, M = IM() S = IL() + [INF] T = IL() S.sort() sT = sorted(T) d = defaultdict(deque) j = 0 for i in range(M): if j >= N: break t = sT[i] while S[j] < t: j += 1 if j != N: d[t].append(S[j]) j += 1 ans = 0 for i in range(M): t = T[i] if not d[t]: break c = d[t].popleft() ans = max(ans, c-t) print(ans)