#include <cstdio>
#include <unordered_map>
#define MAXN (1<<21)
using namespace std;
int n, L, U;
int a[MAXN];
long long sol;
unordered_map<int, int> mic, mare;
long long tot(unordered_map<int, int> &m, int ma)
{
int sz = 0, ind = 1;
long long part = 0;
for (int i = 1; i <= n; i++)
{
m[a[i]]++;
if (m[a[i]] == 1) sz++;
while (sz > ma)
{
m[a[ind]]--;
if (m[a[ind++]] == 0)
sz--;
}
part += i-ind+1;
}
return part;
}
void solve()
{
sol = tot(mare, U) - tot(mic, L-1);
}
int main()
{
freopen("secv5.in", "r", stdin);
freopen("secv5.out", "w", stdout);
scanf("%d %d %d", &n, &L, &U);
for (int i = 1; i <= n; i++)
scanf("%d ", &a[i]);
solve();
printf("%lld", sol);
return 0;
}