#include #include #include #include #include using namespace std; using namespace atcoder; using ll = long long; //#define endl "\n"; const long long INF = 1000000000000000000; ll N, M, B[200009]; multiset mst; int main(){ cin >> N >> M; for(int i = 0; i < N; i++){ ll a; cin >> a; mst.insert(a); } for(int i = 0; i < M; i++){ cin >> B[i]; } vector vA, vB; ll num = 0; for(int i = 0; i < M; i++){ auto itr = mst.lower_bound(B[i]); if(itr == mst.end()){ break; } vA.push_back(*itr); vB.push_back(B[i]); mst.erase(mst.find(*itr)); num++; } ll ans = 0; sort(vA.begin(), vA.end()); sort(vB.begin(), vB.end()); for(int i = 0; i < (int)vA.size(); i++){ ans = max(ans, abs(vA[i] - vB[i])); } cout << ans << endl; return 0; }