N,M,T = map(int,input().split()) A = list(map(int,input().split())) B = [0] * N for v in A: B[v-1] += 1 L = 0 R = 10**15 while R-L != 1: M = (L+R)//2 over = 0 remain = 0 for i in range(N): if B[i] > M: over += B[i] - M else: remain += (M-B[i]) // T if over <= remain: R = M else: L = M print (R)