//入力+テストケースチェック #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; assert(1 <= N <= 2e5); assert(1 <= M <= N); for(int i = 0; i < N; i++){ ll a; cin >> a; assert(1 <= a <= 1e9); mst.insert(a); } for(int i = 0; i < M; i++){ cin >> B[i]; assert(1 <= B[i] <= 1e9); } 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 << "num=" << num << endl; cout << ans << endl; return 0; }