#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
ull solve(const vector<int>& v, int nr)
{
unordered_map<int, int> mp;
int left = 0;
ull ans = 0;
for(int i = 0;i < v.size();++i)
{
++mp[v[i]];
while(mp.size() > nr)
{
--mp[v[left]];
if(mp[v[left]] == 0)
mp.erase(v[left]);
++left;
}
ans += i - left + 1;
}
return ans;
}
int main() {
freopen("secv5.in", "r", stdin);
freopen("secv5.out", "w", stdout);
int n, l, u;
cin >> n >> l >> u;
vector<int> v(n);
for(int i = 0;i < n;++i)
cin >> v[i];
if(l == 1)
cout << solve(v, u) << "\n";
else
cout << solve(v, u) - solve(v, l - 1) << "\n";
}