N, M, T = map(int, input().split()) A = list(map(int, input().split())) cnt = [0]*N for i in range(M): cnt[A[i]-1] += 1 cnt.sort(reverse=1) def f(x): stk = 0 for i in range(N): if cnt[i] > x: stk += cnt[i] - x else: y = x - cnt[i] stk -= y//T return stk <= 0 r = 1<<60 l = -1 while r - l > 1: m = (r + l)//2 if f(m): r = m else: l = m print(r)