#pragma GCC optimize("-Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
#pragma GCC optimize("unroll-loops")
// #include <atcoder/all>
// #include <bits/stdc++.h>
#include <complex>
#include <queue>
#include <set>
#include <unordered_set>
#include <list>
#include <chrono>
#include <random>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <stack>
#include <iomanip>
#include <fstream>

using namespace std;
// using namespace atcoder;

typedef long long ll;
typedef long double ld;
typedef pair<int, int> p32;
typedef pair<ll, ll> p64;
typedef pair<p64, p64> pp64;
typedef pair<double, double> pdd;
typedef vector<ll> v64;
typedef vector<int> v32;
typedef vector<vector<int>> vv32;
typedef vector<vector<ll>> vv64;
typedef vector<vector<p64>> vvp64;
typedef vector<p64> vp64;
typedef vector<p32> vp32;
typedef pair<ll, p64> tp;
ll MOD = 998244353;
double eps = 1e-12;
#define forn(i, e) for (ll i = 0; i < e; i++)
#define forsn(i, s, e) for (ll i = s; i < e; i++)
#define rforn(i, s) for (ll i = s; i >= 0; i--)
#define rforsn(i, s, e) for (ll i = s; i >= e; i--)
#define ln '\n'
#define dbg(x) cout << #x << " = " << x << ln
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define INF 2e18
#define fast_cin()                    \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);                    \
    cout.tie(NULL)
#define all(x) (x).begin(), (x).end()
#define sz(x) ((ll)(x).size())
#define zero ll(0)
#define set_bits(x) __builtin_popcountll(x)
// #define mint modint998244353

ll mpow(ll a, ll b)
{
    if (a == 0)
        return 0;
    if (b == 0)
        return 1;
    ll t1 = mpow(a, b / 2);
    t1 *= t1;
    t1 %= MOD;
    if (b % 2)
        t1 *= a;
    t1 %= MOD;
    return t1;
}

ll mpow(ll a, ll b, ll p)
{
    if (a == 0)
        return 0;
    if (b == 0)
        return 1;
    ll t1 = mpow(a, b / 2, p);
    t1 *= t1;
    t1 %= p;
    if (b % 2)
        t1 *= a;
    t1 %= p;
    return t1;
}

ll modinverse(ll a, ll m)
{
    ll m0 = m;
    ll y = 0, x = 1;
    if (m == 1)
        return 0;
    while (a > 1)
    {
        ll q = a / m;
        ll t = m;
        m = a % m, a = t;
        t = y;
        y = x - q * y;
        x = t;
    }
    if (x < 0)
        x += m0;
    return x;
}

mt19937_64 mt(chrono::steady_clock::now().time_since_epoch().count());

ll range(ll l, ll r)
{
    return l + mt() % (r - l + 1);
}

ll rev(ll v)
{
    return mpow(v, MOD - 2);
}

ll nc2(ll n)
{
    return (n * (n - 1)) / 2;
}

ll ceil(ll p, ll q)
{
    return (p + q - 1) / q;
}

void solve()
{
    int k, n, m;
    cin >> k >> n >> m;
    v64 arr(k + 1);
    v64 ans(k + 1, 0);
    for (int i = 1; i <= k; i++)
    {
        cin >> arr[i];
        ans[i] = arr[i] * m / n;
    }
    m = m % n;
    // v64 f(k + 1);
    // v64 c(k + 1);
    vp64 temp(k + 1);
    ll sum = 0;
    for (int i = 1; i <= k; i++)
    {
        // f[i] = arr[i] * m / n;
        // c[i] = f[i] + 1;
        temp[i] = {(arr[i] * m) % n,
                   i};
        sum += temp[i].fi;
    }
    int cnt = sum / n;
    sort(temp.begin() + 1, temp.end(), greater<p64>());
    for (int i = 1; i <= cnt; i++)
    {
        ans[temp[i].se]++;
    }
    for (int i = 1; i <= k; i++)
    {
        cout << ans[i] << " ";
    }
}

int main()
{
    fast_cin();
    ll t = 1;
    // cin >> t;
    // mint a = 3;
    // cout << (1 - a).val() << endl;
    forn(i, t)
    {
        // cout << "Case #" << i+1 << ": ";
        solve();
    }
    return 0;
}
#include <iostream>
#include <queue>
#include <vector>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using namespace std;

int main(void) {
  ios::sync_with_stdio(false);
  int64_t K, N, M;
  cin >> K >> N >> M;
  vector<int64_t> A(K);
  rep(i, K) cin >> A[i];

  vector<int64_t> B(K);
  int64_t sumB = M;
  rep(i, K) {
    B[i] = (int64_t)A[i] * (int64_t)M / (int64_t)N;
    sumB -= B[i];
  }

  using qtype = pair<int64_t, int>;
  priority_queue<qtype, vector<qtype>, greater<qtype>> que;
  rep(i, K) {
    que.emplace(B[i] * N - A[i] * M, i);
  }
  while(sumB--) {
    auto idx = que.top().second;
    que.pop();
    B[idx]++;
    que.emplace(B[idx] * N - A[idx] * M, idx);
  }

  rep(i, K){
    if(i) cout << " ";
    cout << B[i];
  }
  cout << endl;
  return 0;
}
