def readint(): return map(int, input().split()) n, m, t = readint() a = list(readint()) oven = [0] * n for x in a: oven[x - 1] += 1 low, high = 0, t * m while abs(low - high) > 1: mid = (low + high) // 2 yoyu = 0 not_baked = 0 for x in oven: if mid < x: not_baked += x - mid else: yoyu += (mid - x) // t if not_baked <= yoyu: high = mid else: low = mid print(high)