#include<bits/stdc++.h>
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define int long long
#define pii pair<int,int>
#define ii int,int
#define fi first
#define se second
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define umap unordered_map
#define BIT(mask, i) ((mask >> i)&1)
#define ALL(c) c.begin(), c.end()
using namespace std;
mt19937 rd(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){
return l + rd()*rd()%(r-l+1);
}
const int N = 1e6+7;
const int M = 1e3+3;
const int MOD = 1e9+7;
const int inf = 3e18;
int n, q, a[N], r;
int pos[N]; // pos[i] = số camera quét qua i
void sub1(){ // Bruteforce
for(int i = 1; i <= q; i++){
for(int j = max(a[i] - r, 1*1ll); j <= min(a[i] + r, n); j++){
pos[j]++; // đánh dấu camera thứ i quét qua pos[j]
}
}
for(int i = 1; i <= n; i++){
cout << pos[i] << ' ';
}
}
void sub2(){ // Sử dụng mảng tổng tiền tố
for(int i = 1; i <= q; i++){ // duyệt tất cả các camera
int l = max(a[i] - r, 1*1ll);
int R = min(a[i] + r, n);
pos[l]++;
pos[R+1]--;
}
for(int i = 1; i <= n; i++){
pos[i] += pos[i-1];
}
for(int i = 1; i <= n; i++) cout << pos[i] << ' ';
}
void solve(){
cin >> n >> q >> r;
for(int i = 1; i <= q; i++){
cin >> a[i];
}
sub2();
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpCgojZGVmaW5lIGludCBsb25nIGxvbmcKCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBpaSBpbnQsaW50CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgdW1hcCB1bm9yZGVyZWRfbWFwCiNkZWZpbmUgQklUKG1hc2ssIGkpICgobWFzayA+PiBpKSYxKQojZGVmaW5lIEFMTChjKSBjLmJlZ2luKCksIGMuZW5kKCkKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgptdDE5OTM3IHJkKGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CmludCByYW5kKGludCBsLCBpbnQgcil7CiAgICByZXR1cm4gIGwgKyByZCgpKnJkKCklKHItbCsxKTsKfQoKY29uc3QgaW50IE4gPSAxZTYrNzsKY29uc3QgaW50IE0gPSAxZTMrMzsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgaW5mID0gM2UxODsKCmludCBuLCBxLCBhW05dLCByOwppbnQgcG9zW05dOyAvLyBwb3NbaV0gPSBz4buRIGNhbWVyYSBxdcOpdCBxdWEgaQoKdm9pZCBzdWIxKCl7IC8vIEJydXRlZm9yY2UKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gcTsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSBtYXgoYVtpXSAtIHIsIDEqMWxsKTsgaiA8PSBtaW4oYVtpXSArIHIsIG4pOyBqKyspewogICAgICAgICAgICBwb3Nbal0rKzsgLy8gxJHDoW5oIGThuqV1IGNhbWVyYSB0aOG7qSBpIHF1w6l0IHF1YSBwb3Nbal0KICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY291dCA8PCBwb3NbaV0gPDwgJyAnOwogICAgfQp9Cgp2b2lkIHN1YjIoKXsgLy8gU+G7rSBk4bulbmcgbeG6o25nIHThu5VuZyB0aeG7gW4gdOG7kQogICAgZm9yKGludCBpID0gMTsgaSA8PSBxOyBpKyspeyAvLyBkdXnhu4d0IHThuqV0IGPhuqMgY8OhYyBjYW1lcmEKICAgICAgICBpbnQgbCA9IG1heChhW2ldIC0gciwgMSoxbGwpOwogICAgICAgIGludCBSID0gbWluKGFbaV0gKyByLCBuKTsKICAgICAgICBwb3NbbF0rKzsKICAgICAgICBwb3NbUisxXS0tOwogICAgfQogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIHBvc1tpXSArPSBwb3NbaS0xXTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjb3V0IDw8IHBvc1tpXSA8PCAnICc7Cn0KCnZvaWQgc29sdmUoKXsKICAgIGNpbiA+PiBuID4+IHEgPj4gcjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gcTsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KICAgIHN1YjIoKTsKfQoKc2lnbmVkIG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBzb2x2ZSgpOwp9Cgo=