#include using namespace std; using ll = long long; using triple = tuple; int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int n, h, t; cin >> n >> h >> t; vector a(n); for (int &x : a) cin >> x; auto comp = [] (triple lhs, triple rhs) -> bool { auto [l1, l2, l3] = lhs; auto [r1, r2, r3] = rhs; if (l1 != r1) return l1 > r1; if (l2 != r2) return l2 < r2; return l3 > r2; }; vector ans(n, 0), res(n); for (int i = 0; i < n; i++) { res[i] = (h + a[i] - 1) / a[i]; } priority_queue, decltype(comp)> que(comp); for (int i = 0; i < n; i++) { que.push({res[i], res[i] * a[i], i}); } for (int i = 0; i < t; i++) { auto [ct, val, idx] = que.top(); que.pop(); ans[idx]++; que.push({ct + res[idx], val, idx}); } for (int i = 0; i < n; i++) { cout << ans[i] << (i == n - 1 ? "\n" : " "); } return 0; }