n, m, t = map(lambda s_: int(s_), input().split()) a = tuple(map(lambda s_: int(s_) - 1, input().split())) fav = [0] * n for ai in a: fav[ai] += 1 def pred(x): over = 0 slow = 0 for ai in fav: if ai <= x: slow += (x - ai) // t else: over += ai - x return over <= slow ng = 0 ok = 1 while not pred(ok): ok *= 2 while abs(ok - ng) > 1: mi = (ok + ng) // 2 if pred(mi): ok = mi else: ng = mi print(ok)