n, x, k = map(int, input().split())#n кол-во тем, x - кол-во задач Гена, k - кол-во студентов
a = []
g = []
cnt = 0
for i in range(0, n):
it = int(input())
a += [it]
g.append([it//x, it])
g.sort(reverse = True)
print(g)
while True:
if g == []:
break
cnt += 1
g[0][1] = g[0][1] - x
g[0][0] = g[0][1] // x
r, t = g[0][0], g[0][1]
g.pop(0)
if t > 0:
for i in range(0, len(g)):
if r >= g[i][0]:
for j in range(i, len(g)):
if r > g[j][0]:
g.insert(j-1, [r, t])
break
if g[j][1] <= t:
g.insert(j - 1, [r, t])
break
else:
g.insert(len(g) - 1, [r, t])
break
if g == []:
break
print(g, "Гена")
g[len(g)-1][1] -= k
g[len(g)-1][0] = g[len(g)-1][1] // x
if g[len(g) - 1][1] < 0:
dif = abs(g[len(g) - 1][1])
g.pop(len(g) - 1)
while True:
print(g, "в цикле")
if g[len(g)-1][1] - dif >= 0:
g[len(g) - 1][1] -= dif
g[len(g) - 1][0] = g[len(g) - 1][1] // x
break
else:
dif -= g[len(g)-1][1]
g.pop(len(g) - 1)
print(g, "после цикла")
r, t = g[len(g)-1][0], g[len(g)-1][1]
g.pop(len(g)-1)
if t > 0:
for i in range(0, len(g)):
if r >= g[i][0]:
#print(g, "что тут пошло не так")
for j in range(i, len(g)):
if r > g[j][0]:
#print("тут?")
g.insert(j-1, [r, t])
break
if g[j][1] <= t:
#print("здесь?")
g.insert(j - 1, [r, t])
break
else:
g.append([r, t])
break
print(g, "queue")
print(cnt, "counter")
print(cnt)