#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = (1 << 20) + 5;
int n, L, R;
int a[N];
void compress(int a[]) {
vector<int> vals;
for (int i = 1; i <= n; i++) vals.push_back(a[i]);
sort(vals.begin(), vals.end());
vals.resize(unique(vals.begin(), vals.end()) - vals.begin());
for (int i = 1; i <= n; i++) {
a[i] = lower_bound(vals.begin(), vals.end(), a[i]) - vals.begin() + 1;
}
}
int uniq_cnt = 0;
int cnt[N];
void add(int x) {
cnt[x]++;
if (cnt[x] == 1) uniq_cnt++;
}
void remove(int x) {
cnt[x]--;
if (cnt[x] == 0) uniq_cnt--;
}
ll solve(int X) {
memset(cnt, 0, sizeof cnt);
uniq_cnt = 0;
ll ans = 0;
for (int r = 1, l = 1; r <= n; r++) {
add(a[r]);
// l nhỏ nhất thoả mãn số phần tử phân biệt của đoạn [l, r] <= X
while (l <= r && uniq_cnt > X) {
remove(a[l]);
l++;
}
ans += r - l + 1;
}
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> L >> R;
for (int i = 1; i <= n; i++) cin >> a[i];
compress(a);
ll ans = solve(R) - solve(L - 1);
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAoMSA8PCAyMCkgKyA1OyAgCgppbnQgbiwgTCwgUjsgIAppbnQgYVtOXTsgCgp2b2lkIGNvbXByZXNzKGludCBhW10pIHsKCXZlY3RvcjxpbnQ+IHZhbHM7ICAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgdmFscy5wdXNoX2JhY2soYVtpXSk7ICAKCglzb3J0KHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSk7IAoJdmFscy5yZXNpemUodW5pcXVlKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSkgLSB2YWxzLmJlZ2luKCkpOyAKCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKCQlhW2ldID0gbG93ZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCBhW2ldKSAtIHZhbHMuYmVnaW4oKSArIDE7IAoJfQp9CgppbnQgdW5pcV9jbnQgPSAwOyAgCmludCBjbnRbTl07IAoKdm9pZCBhZGQoaW50IHgpIHsKCWNudFt4XSsrOyAKCWlmIChjbnRbeF0gPT0gMSkgdW5pcV9jbnQrKzsgCn0KCnZvaWQgcmVtb3ZlKGludCB4KSB7CgljbnRbeF0tLTsgCglpZiAoY250W3hdID09IDApIHVuaXFfY250LS07IAp9CgpsbCBzb2x2ZShpbnQgWCkgewoJbWVtc2V0KGNudCwgMCwgc2l6ZW9mIGNudCk7IAoJdW5pcV9jbnQgPSAwOyAgIAoJbGwgYW5zID0gMDsgIAoJZm9yIChpbnQgciA9IDEsIGwgPSAxOyByIDw9IG47IHIrKykgewoJCWFkZChhW3JdKTsgIAoJCS8vIGwgbmjhu48gbmjhuqV0IHRob+G6oyBtw6NuIHPhu5EgcGjhuqduIHThu60gcGjDom4gYmnhu4d0IGPhu6dhIMSRb+G6oW4gW2wsIHJdIDw9IFgKCQl3aGlsZSAobCA8PSByICYmIHVuaXFfY250ID4gWCkgewoJCQlyZW1vdmUoYVtsXSk7IAoJCQlsKys7IAoJCX0KCQlhbnMgKz0gciAtIGwgKyAxOyAKCX0KCXJldHVybiBhbnM7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAJCgljaW4gPj4gbiA+PiBMID4+IFI7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOyAKCgljb21wcmVzcyhhKTsgIAoKCWxsIGFucyA9IHNvbHZlKFIpIC0gc29sdmUoTCAtIDEpOyAKCgljb3V0IDw8IGFucyA8PCAnXG4nOyAKfQ==