#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
unordered_map<int, int> mp;
int v[(1 << 21)];
int main()
{
int n, l, u;
fin >> n >> l >> u;
for(int i = 1; i <= n; ++i)
fin >> v[i];
bool fs = 0;
int nrAp = 0, rez = 0, p1 = 1, p2 = 1;
while(p2 <= n && p1 <= n)
{
if(nrAp > u || fs)
{
mp[v[p1]] --;
if(mp[v[p1]] == 0)
--nrAp;
if(nrAp <= u && nrAp >= l)
++rez;
++p1;
if(fs)
{
mp.clear();
fs = 0;
p2 = p1;
}
}
else if(!fs)
{
if(mp.find(v[p2]) == mp.end())
mp[v[p2]] = 0;
mp[v[p2]]++;
if(mp[v[p2]] == 1)
++nrAp;
if(nrAp >= l && nrAp <= u)
++rez;
if(p2 == n) fs = 1;
else ++p2;
}
}
fout << rez << '\n';
return 0;
}