#include #include using namespace std; using namespace atcoder; #define rep(i, n) for(int i=0;i<(n);++i) #define rep1(i, n) for(int i=1;i<=(n);i++) #define ll long long using mint = modint998244353; using P = pair; using lb = long double; using T = tuple; #ifdef LOCAL # include # define dbg(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else # define dbg(...) (static_cast(0)) #endif int main() { int n, h, t; cin >> n >> h >> t; vector a(n); rep(i,n) { cin >> a[i]; } ll high = 1e13+1; ll low = 0; while(high-low>1) { ll mid = (high+low)/2; ll cnt = 0; rep(i,n) { int y = (h+a[i]-1)/a[i]; cnt += mid/y; } if(cnt>=t) high = mid; else low = mid; } vector> vs; rep(i,n) { int y = (h+a[i]-1)/a[i]; ll now = y; while(now<=high) { vs.emplace_back(now, -y*a[i], i); now += y; } } sort(vs.begin(),vs.end()); vector c(n); rep(i,t) { auto [kai, val, id] = vs[i]; c[id]++; } dbg(vs); rep(i,n) { cout << c[i] << " "; } cout << endl; return 0; }