#!/usr/bin/env python3

n, k = map(int, input().split())
ls = []
hs = []
pos = [False] * n
for i in range(n):
    ls.append(list(map(int, input().split())))
    hs.append(list(map(int, input().split())))
    if ls[-1] == [0] * k:
        pos[i] = True


# Can we verify alg j using alg i.
def covers(i, j):
    for ih, jl in zip(hs[i], ls[j]):
        if ih < jl:
            return False
    # NOTE: This causes WA.
    for il, jh in zip(ls[i], hs[j]):
        if jh < il:
            return False
    return True


# do a bfs
q = []
for i in range(n):
    if pos[i]:
        q.append(i)
while q:
    i = q.pop()
    for j in range(n):
        if not pos[j] and covers(i, j):
            pos[j] = True
            q.append(j)

print(pos.count(True))
