n, m, t = map(int, input().split()) a = list(map(lambda x: int(x)-1, input().split())) l, r = 0, 1 << 60 while r - l > 1: piv = (l + r) // 2 oven = [0] * n cnt = 0 for v in a: if oven[v] < piv: oven[v] += 1 else: cnt += 1 for v in oven: cnt -= (piv - v) // t if cnt > 0: l = piv else: r = piv print(r)