#include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; typedef vector vi; typedef vector vvi; typedef vector vii; #define x first #define y second #define pb push_back #define eb emplace_back #define all(v) (v).begin(), (v).end() const ld PI = acos((ld) -1); vector visited; vvi L, H; ll n, k; ll dfs(ll i) { if (visited[i]) return 0; ll r = 1; visited[i] = true; for (ll j = 0; j < n; j++) { bool e = true; for (ll l = 0; l < k; l++) { if (L[j][l] > H[i][l]) { e = false; } } if (e) { r += dfs(j); } } return r; } void run() { cin >> n >> k; L = vvi(n, vi(k)); H = vvi(n, vi(k)); vi A; visited = vector(n, false); for (ll i = 0; i < n; i++) { bool start = true; for (ll j = 0; j < k; j++) { cin >> L[i][j]; if (L[i][j] > 0) { start = false; } } if (start) { A.pb(i); } for (ll j = 0; j < k; j++) { cin >> H[i][j]; } } ll res = 0; for (ll a : A) { res += dfs(a); } cout << res << endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); run(); return 0; }