import heapq n,h,t=map(int,input().split()) a=list(map(int,input().split())) v=[] ans=[0]*n for i in range(n): s=(h-a[i]+1)//a[i]+1 heapq.heappush(v,[s,i]) x=[] m=0 for i in range(t): if x: m+=1 while v and v[0][0]<=m: q,w=heapq.heappop(v) heapq.heappush(x,w) q=heapq.heappop(x) ans[q]+=1 heapq.heappush(v,[(h-a[q]+1)//a[q]+1+m,q]) continue q,w=heapq.heappop(v);m=q heapq.heappush(x,w) while v and v[0][0]==m: e,r=heapq.heappop(v) heapq.heappush(x,r) q=heapq.heappop(x) ans[q]+=1 heapq.heappush(v,[(h-a[q]+1)//a[q]+1+m,q]) print(" ".join(map(str,ans)))