#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) int timer(){ static auto st = chrono::system_clock::now(); auto en = chrono::system_clock::now(); return chrono::duration_cast(en - st).count(); } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); timer(); int n,m; cin>>n>>m; vector a(n),b(n),c(n); vector x(m),y(m),z(m); rep(i,n) cin>>a[i]>>b[i]>>c[i]; rep(i,m) cin>>x[i]>>y[i]>>z[i]; bitset<1030301> stl; rep(i,n){ stl[a[i]+101*b[i]+101*101*c[i]]=1; } vector> vp(m); rep(i,m){ vp[i].first=x[i]*x[i]+y[i]*y[i]+z[i]*z[i]; vp[i].second=abs(x[i]+101*y[i]+101*101*z[i]); } sort(vp.begin(),vp.end()); int ans=n; rep(i,m){ ans=max(ans,n*2-(int)(stl&(stl>>vp[m-1-i].second)).count()); if(i%10==0&&timer()>1950) break; } cout<