N,M,C=map(int,input().split())

p = [list(map(int,input().split())) for _ in range(N)]
stud = [None for _ in range(N)]

Cs = [[] for _ in range(M)]
ptrs = [N-1 for _ in range(M)]

succ = True
while succ:
    succ = False
    for s in range(M):
        while ptrs[s] >= 0:
            if s+1 in p[ptrs[s]] and stud[ptrs[s]] != p[ptrs[s]][0]-1 and (len(Cs[s]) <= C or Cs[s][-C-1] > ptrs[s]):
                Cs[s].append(ptrs[s])
                if stud[ptrs[s]] is not None:
                    Cs[stud[ptrs[s]]].remove(ptrs[s])
                stud[ptrs[s]] = s
                if len(Cs[s]) > C:
                    idx = 1 if p[Cs[s][-C-1]][0]-1 == stud[Cs[s][-C-1]] else 0
                    stud[Cs[s][-C-1]] = None
                    ptrs[p[Cs[s][-C-1]][idx]-1] = max(ptrs[p[Cs[s][-C-1]][idx]-1], Cs[s][-C-1])
                succ = True
                ptrs[s] -= 1
                break
            ptrs[s] -= 1

fx = sx = 0
for a, (f, s) in zip(stud, p):
    fx += a == f-1
    sx += a == s-1

print(fx, sx)

