#include <fstream>
#include <cstdio>
#include <unordered_map>
#define MAXN 1050000
#define DIM 1000000
using namespace std;
class InputReader
{
private:
char buf[DIM];
int cursor;
FILE *f;
void adv()
{
if (++cursor == DIM) {
cursor = 0;
fread(buf, DIM, 1, f);
}
}
public:
InputReader(char *fname)
{
f = fopen(fname, "r");
cursor = 0;
fread(buf, DIM, 1, f);
}
InputReader &operator>>(unsigned int &x)
{
for (; buf[cursor] < '0' || buf[cursor] > '9'; adv());
for (x = 0; buf[cursor] >= '0' && buf[cursor] <= '9'; adv())
x = x*10 + buf[cursor] - '0';
return *this;
}
};
unsigned int n, L, U;
unsigned int a[MAXN];
long long sol;
long long tot(unsigned int ma)
{
unordered_map<unsigned int, int> m;
int sz = 0, ind = 1;
long long part = 0;
for (int i = 1; i <= n; i++)
{
sz += ((++m[a[i]])==1);
for (; sz > ma; ind++)
sz -= ((--m[a[ind]])==0);
part += i-ind+1;
}
return part;
}
void solve()
{
sol = tot(U) - tot(L-1);
}
InputReader fin("secv5.in");
int main()
{
ofstream fout("secv5.out");
fin >> n >> L >> U;
for (int i = 1; i <= n; i++)
fin >> a[i];
solve();
fout << sol;
return 0;
}