#include <bits/stdc++.h>
#define debug cout << "ok\n";
#define SQR(x) (1LL * ((x) * (x)))
#define MASK(i) (1LL << (i))
#define BIT(x, i) (((x) >> (i)) & 1)
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pli pair<ll, int>
#define vi vector<int>
#define vll vector<ll>
#define FAST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef unsigned int ui;
using namespace std;
const int M = 1e9 + 7;
const int INF = 1e9 + 7;
const ll INFLL = (ll)2e18 + 7LL;
const ld PI = acos(-1);
const int dx[] = {1, -1, 0, 0, -1, 1, 1, -1};
const int dy[] = {0, 0, 1, -1, -1, -1, 1, 1};
template<class _, class __>
bool minimize(_ &x, const __ y){
if(x > y){
x = y;
return true;
} else return false;
}
template<class _, class __>
bool maximize(_ &x, const __ y){
if(x < y){
x = y;
return true;
} else return false;
}
//--------------------------------------------------------------
const int MaxN = 2e5+7;
int n,u,v,a[MaxN];
//namespace sub1 {
// bool check() {
// return n <= 5000;
// }
//
// int f[5007][5007];
// int lab[5007];
//
// int GR(int u) {
// return lab[u] < 0 ? u : lab[u] = GR(lab[u]);
// }
//
// void sol() {
// for (int i=1;i<=n;i++) {
// int p = 0;
// for (int j=0;j<=n;j++) {
// lab[j] = -1;
// }
// for (int j=i;j<=n;j++) {
// lab[a[j]] = a[j] + 1;
// p = GR(p);
// f[p][j - i + 1]++;
// }
// }
// for (int i=1;i<=n;i++) {
// int res = 0;
// for (int j=u;j<=min(n,v);j++) {
// res += f[j][i];
// }
// cout << res << ' ';
// }
// }
//}
namespace sub2 {
bool check() {
return true;
}
int cnt[MaxN],f[MaxN];
int res[MaxN];
void calc(int u,int val) {
// cout << u << ' ' << val << '\n';
memset(cnt,0,sizeof(cnt));
memset(f,0,sizeof(f));
int cntt = 0;
int cur = 0;
while (cur < n && cntt < u) {
cur++;
cnt[a[cur]]++;
if (a[cur] < u && cnt[a[cur]] == 1) cntt++;
}
if (cntt < u) return;
cnt[a[cur]]--;
int curr = 1;
for (int i=cur;i<=n;i++) {
cnt[a[i]]++;
while (curr < i && (a[curr] >= u || cnt[a[curr]] > 1)) {
cnt[a[curr]]--;
curr++;
}
// cout << i << ' ' << curr << '\n';
f[i - curr + 1]++;
f[i+1]--;
}
// for (int i=1;i<=n;i++) cout << f[i] << ' '; cout << '\n';
for (int i=1;i<=n;i++) {
f[i] += f[i-1];
}
for (int i=1;i<=n;i++) {
res[i] += f[i]*val;
}
}
void sol() {
// for (int i=1;i<=n;i++) {
// res[i] = n - i + 1;
// }
calc(u,1);
// for (int i=1;i<=n;i++) cout << res[i] << ' '; cout << '\n';
calc(v+1,-1);
for (int i=1;i<=n;i++) cout << res[i] << ' ';
}
}
void sol() {
cin >> n >> u >> v;
for (int i=1;i<=n;i++) cin >> a[i];
// if (sub1::check()) {
// sub1::sol();
// return;
// }
if (sub2::check()) {
sub2::sol();
return;
}
}
int main() {
freopen("EAT.inp","r",stdin);
freopen("EAT.out","w",stdout);
FAST
int t=1;
// cin >> t;
while (t--) sol();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGRlYnVnICAgICBjb3V0IDw8ICJva1xuIjsKI2RlZmluZSBTUVIoeCkgICAgKDFMTCAqICgoeCkgKiAoeCkpKQojZGVmaW5lIE1BU0soaSkgICAoMUxMIDw8IChpKSkKI2RlZmluZSBCSVQoeCwgaSkgKCgoeCkgPj4gKGkpKSAmIDEpCiNkZWZpbmUgZmkgICAgICAgIGZpcnN0CiNkZWZpbmUgc2UgICAgICAgIHNlY29uZAojZGVmaW5lIHBiICAgICAgICBwdXNoX2JhY2sKCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgcGxsIHBhaXI8bGwsIGxsPgojZGVmaW5lIHBsaSBwYWlyPGxsLCBpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2bGwgdmVjdG9yPGxsPgoKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpOwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNID0gMWU5ICsgNzsKY29uc3QgaW50IElORiA9IDFlOSArIDc7CmNvbnN0IGxsIElORkxMID0gKGxsKTJlMTggKyA3TEw7CmNvbnN0IGxkIFBJID0gYWNvcygtMSk7Cgpjb25zdCBpbnQgZHhbXSA9IHsxLCAtMSwgMCwgMCwgLTEsIDEsIDEsIC0xfTsKY29uc3QgaW50IGR5W10gPSB7MCwgMCwgMSwgLTEsIC0xLCAtMSwgMSwgMX07Cgp0ZW1wbGF0ZTxjbGFzcyBfLCBjbGFzcyBfXz4KICAgIGJvb2wgbWluaW1pemUoXyAmeCwgY29uc3QgX18geSl7CiAgICAgICAgaWYoeCA+IHkpewogICAgICAgICAgICB4ID0geTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHJldHVybiBmYWxzZTsKICAgIH0KdGVtcGxhdGU8Y2xhc3MgXywgY2xhc3MgX18+CiAgICBib29sIG1heGltaXplKF8gJngsIGNvbnN0IF9fIHkpewogICAgICAgIGlmKHggPCB5KXsKICAgICAgICAgICAgeCA9IHk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7CiAgICB9CgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjb25zdCBpbnQgTWF4TiA9IDJlNSs3OwoKaW50IG4sdSx2LGFbTWF4Tl07CgovL25hbWVzcGFjZSBzdWIxIHsKLy8gICAgYm9vbCBjaGVjaygpIHsKLy8gICAgICAgIHJldHVybiBuIDw9IDUwMDA7Ci8vICAgIH0KLy8KLy8gICAgaW50IGZbNTAwN11bNTAwN107Ci8vICAgIGludCBsYWJbNTAwN107Ci8vCi8vICAgIGludCBHUihpbnQgdSkgewovLyAgICAgICAgcmV0dXJuIGxhYlt1XSA8IDAgPyB1IDogbGFiW3VdID0gR1IobGFiW3VdKTsKLy8gICAgfQovLwovLyAgICB2b2lkIHNvbCgpIHsKLy8gICAgICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgewovLyAgICAgICAgICAgIGludCBwID0gMDsKLy8gICAgICAgICAgICBmb3IgKGludCBqPTA7ajw9bjtqKyspIHsKLy8gICAgICAgICAgICAgICAgbGFiW2pdID0gLTE7Ci8vICAgICAgICAgICAgfQovLyAgICAgICAgICAgIGZvciAoaW50IGo9aTtqPD1uO2orKykgewovLyAgICAgICAgICAgICAgICBsYWJbYVtqXV0gPSBhW2pdICsgMTsKLy8gICAgICAgICAgICAgICAgcCA9IEdSKHApOwovLyAgICAgICAgICAgICAgICBmW3BdW2ogLSBpICsgMV0rKzsKLy8gICAgICAgICAgICB9Ci8vICAgICAgICB9Ci8vICAgICAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIHsKLy8gICAgICAgICAgICBpbnQgcmVzID0gMDsKLy8gICAgICAgICAgICBmb3IgKGludCBqPXU7ajw9bWluKG4sdik7aisrKSB7Ci8vICAgICAgICAgICAgICAgIHJlcyArPSBmW2pdW2ldOwovLyAgICAgICAgICAgIH0KLy8gICAgICAgICAgICBjb3V0IDw8IHJlcyA8PCAnICc7Ci8vICAgICAgICB9Ci8vICAgIH0KLy99CgpuYW1lc3BhY2Ugc3ViMiB7CiAgICBib29sIGNoZWNrKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIGludCBjbnRbTWF4Tl0sZltNYXhOXTsKICAgIGludCByZXNbTWF4Tl07CgogICAgdm9pZCBjYWxjKGludCB1LGludCB2YWwpIHsKLy8gICAgICAgIGNvdXQgPDwgdSA8PCAnICcgPDwgdmFsIDw8ICdcbic7CiAgICAgICAgbWVtc2V0KGNudCwwLHNpemVvZihjbnQpKTsKICAgICAgICBtZW1zZXQoZiwwLHNpemVvZihmKSk7CiAgICAgICAgaW50IGNudHQgPSAwOwogICAgICAgIGludCBjdXIgPSAwOwogICAgICAgIHdoaWxlIChjdXIgPCBuICYmIGNudHQgPCB1KSB7CiAgICAgICAgICAgIGN1cisrOwogICAgICAgICAgICBjbnRbYVtjdXJdXSsrOwogICAgICAgICAgICBpZiAoYVtjdXJdIDwgdSAmJiBjbnRbYVtjdXJdXSA9PSAxKSBjbnR0Kys7CiAgICAgICAgfQogICAgICAgIGlmIChjbnR0IDwgdSkgcmV0dXJuOwogICAgICAgIGNudFthW2N1cl1dLS07CiAgICAgICAgICAgIGludCBjdXJyID0gMTsKICAgICAgICAgICAgZm9yIChpbnQgaT1jdXI7aTw9bjtpKyspIHsKICAgICAgICAgICAgICAgIGNudFthW2ldXSsrOwogICAgICAgICAgICAgICAgd2hpbGUgKGN1cnIgPCBpICYmIChhW2N1cnJdID49IHUgfHwgY250W2FbY3Vycl1dID4gMSkpIHsKICAgICAgICAgICAgICAgICAgICBjbnRbYVtjdXJyXV0tLTsKICAgICAgICAgICAgICAgICAgICBjdXJyKys7CiAgICAgICAgICAgICAgICB9Ci8vICAgICAgICAgICAgICAgIGNvdXQgPDwgaSA8PCAnICcgPDwgY3VyciA8PCAnXG4nOwogICAgICAgICAgICAgICAgZltpIC0gY3VyciArIDFdKys7CiAgICAgICAgICAgICAgICBmW2krMV0tLTsKICAgICAgICAgICAgfQovLyAgICAgICAgICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgY291dCA8PCBmW2ldIDw8ICcgJzsgY291dCA8PCAnXG4nOwogICAgICAgICAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIHsKICAgICAgICAgICAgICAgIGZbaV0gKz0gZltpLTFdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgewogICAgICAgICAgICAgICAgcmVzW2ldICs9IGZbaV0qdmFsOwogICAgICAgICAgICB9CiAgICB9CgogICAgdm9pZCBzb2woKSB7Ci8vICAgICAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIHsKLy8gICAgICAgICAgICByZXNbaV0gPSBuIC0gaSArIDE7Ci8vICAgICAgICB9CiAgICAgICAgY2FsYyh1LDEpOwovLyAgICAgICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBjb3V0IDw8IHJlc1tpXSA8PCAnICc7IGNvdXQgPDwgJ1xuJzsKICAgICAgICBjYWxjKHYrMSwtMSk7CiAgICAgICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBjb3V0IDw8IHJlc1tpXSA8PCAnICc7CiAgICB9Cn0KCnZvaWQgc29sKCkgewogICAgY2luID4+IG4gPj4gdSA+PiB2OwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBjaW4gPj4gYVtpXTsKLy8gICAgaWYgKHN1YjE6OmNoZWNrKCkpIHsKLy8gICAgICAgIHN1YjE6OnNvbCgpOwovLyAgICAgICAgcmV0dXJuOwovLyAgICB9CiAgICBpZiAoc3ViMjo6Y2hlY2soKSkgewogICAgICAgIHN1YjI6OnNvbCgpOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKaW50IG1haW4oKSB7CglmcmVvcGVuKCJFQVQuaW5wIiwiciIsc3RkaW4pOwoJZnJlb3BlbigiRUFULm91dCIsInciLHN0ZG91dCk7CglGQVNUCglpbnQgdD0xOwovLwljaW4gPj4gdDsKCXdoaWxlICh0LS0pIHNvbCgpOwp9Cg==