#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, ans;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
vector<pair<int, int>> r[m + 1];
int u[n + 1][m + 1], p[m + 1], ptr[m + 1], cnt[n + 1];
memset(u, 0, sizeof u); memset(p, 0, sizeof p); memset(cnt, 0, sizeof cnt); memset(ptr, 0, sizeof ptr);
for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++){
int x; cin >> x;
r[j].push_back({x, i});
}
for(int i = 1;i<=m;i++) sort(r[i].begin(), r[i].end());
for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) cin >> u[i][j];
queue<int> done;
done.push(0);
while(!done.empty()){
int id = done.front();
done.pop();
for(int i = 1;i<=m;i++){
p[i] += u[id][i];
while(ptr[i] < n && p[i] >= r[i][ptr[i]].first){
if(++cnt[r[i][ptr[i]].second] == m) done.push(r[i][ptr[i]].second), ++ans;
ptr[i]++;
}
}
}
cout << ans;
}