#include <bits/stdc++.h>
using namespace std;
int abs(int x);
int abs(int x) { return (x < 0 ? -x : x); }
int min(int x, int y);
int min(int x, int y) { return (x < y ? x : y); }
int max(int x, int y);
int max(int x, int y) { return (x < y ? y : x); }
int main() {
  int hor, ver;
  cin >> ver >> hor;
  vector<pair<pair<int, int>, pair<int, int> > > hori, veri;
  int x, y, l;
  for (int i = 0; i < ver; i++) {
    cin >> x >> y >> l;
    veri.push_back(make_pair(make_pair(x, y), make_pair(x, y + l)));
  }
  for (int i = 0; i < hor; i++) {
    cin >> x >> y >> l;
    hori.push_back(make_pair(make_pair(x, y), make_pair(x + l, y)));
  }
  int res = 0;
  for (int i = 0; i < ver; i++) {
    x = ((veri[i]).first).first;
    int yo = ((veri[i]).first).second;
    int yf = ((veri[i]).second).second;
    for (int j = 0; j < hor; j++) {
      y = ((hori[j]).first).second;
      int xo = ((hori[j]).first).first;
      int xf = ((hori[j]).second).first;
      int md =
          min(min(abs(x - xo), abs(xf - x)), min(abs(y - yo), abs(yf - y)));
      if (xo < x && x < xf && yo < y && y < yf && md > res) res = md;
    }
  }
  cout << res << endl;
  return 0;
}
