N,M = map(int,input().split()) lsR = [list(map(int,input().split())) for i in range(N)] lsTF = [] cnt = 0 lsmax = [[-float('INF')] for i in range(M)] for i in range(N): cnt += 1 lsp = lsR[i] TF = [True]*(M) remls = set() for j in range(M): if lsmax[j][0] > lsp[j]: TF[j] = False elif lsmax[j][0] == lsp[j]: lsmax[j].append(i) else: lose = lsmax[j][1:] for k in lose: lsTF[k][j] = False remls.add(k) lsmax[j] = [lsp[j],i] for rem in remls: if lsTF[rem].count(True) == 0: cnt -= 1 if TF.count(True) == 0: cnt -= 1 lsTF.append(TF) print(cnt)