#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n, m;
  cin >> n >> m;
  vector<pair<int, int>> r(n), s(m), add;
  for (auto &a : r) {
    cin >> a.first >> a.second;
  }
  for (auto &a : s) {
    cin >> a.first >> a.second;
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      add.emplace_back(max(0, s[j].first - r[i].first + 1),
                       max(0, s[j].second - r[i].second + 1));
    }
  }
  sort(add.begin(), add.end());
  vector<int> suf_mx(n * m);
  suf_mx[n * m - 1] = add[n * m - 1].second;
  for (int i = n * m - 2; i >= 0; i--) {
    suf_mx[i] = max(suf_mx[i + 1], add[i].second);
  }
  int ans = suf_mx[0];
  for (int i = 0; i < n * m; i++) {
    if (i < n * m - 1) {
      ans = min(ans, add[i].first + suf_mx[i + 1]);
    } else {
      ans = min(ans, add[i].first);
    }
  }
  cout << ans;
  return 0;
}
