#include <bits/stdc++.h>
using namespace std;
#define int long long
bool is(vector<int> &a, vector<int> &b) {
for (int i = 0; i < a.size(); i++) {
if (a[i] < b[i]) return false;
}
return true;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, k;
cin >> n >> k;
vector<vector<int>> r(n, vector<int>(k));
vector<vector<int>> u(n, vector<int>(k));
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
cin >> r[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
cin >> u[i][j];
}
}
vector<int> ord(n);
iota(ord.begin(), ord.end(), 0);
ranges::sort(ord, [&](int i, int j) {
return u[i] < u[j];
});
vector<bool> vis(n);
vector<int> x(k);
int ans = 0;
for (int _ = 0; _ < n; _++) {
bool ok = 0;
for (int pos = 0; pos < n; pos++) {
int i = ord[pos];
if (is(x, r[i]) && !vis[i]) {
ans++;
vis[i] = 1;
for (int j = 0; j < k; j++) {
x[j] += u[i][j];
}
}
ok = 1;
}
if (!ok) {
break;
}
}
cout << ans << '\n';
return 0;
}