#include #include using ll = long long; using ull = unsigned long long; #define rep(i, n) for(int i = 0; i < (int)(n); i++) #define REP(i, m, n) for(int i = (int)(m); i < (int)(n); i++) using namespace std; using namespace atcoder; using mint = modint998244353; const int inf = 1000000007; const ll longinf = 1ll << 60; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; int b = 101; int all = b * b * b; vector a(all + 1), ra(all + 1); rep(i, n) { int x, y, z; cin >> x >> y >> z; int val = b * b * x + b * y + z; a[val]++; ra[all - val]++; } auto ret = convolution_ll(a, ra); int mi = n; rep(i, m) { int x, y, z; cin >> x >> y >> z; int val = b * b * x + b * y + z; mi = min(mi, (int)ret[all + val]); } cout << 2 * n - mi << endl; return 0; }