#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
int main() {
cin.sync_with_stdio(false);
int taulukkokoko, sallittu;
cin >> taulukkokoko >> sallittu;
vector<int> lista;
for (int i = 1; i <= taulukkokoko; i++) {
int b;
cin >> b;
lista.push_back(b);
}
if (taulukkokoko == sallittu) {
cout << ((taulukkokoko*taulukkokoko) + taulukkokoko) / 2 << endl;
return 0;
}
set<int> uniikit;
map<int, int> montako; //Esim. 5 kolmosta on montako[3]=5
long long ans = 0;
int alku = -1; //Excl.
int loppu = -1; //Incl.
while (loppu < taulukkokoko-1) {
loppu++;
//cout << "ALKU ON " << alku << " JA LOPPU ON " << loppu << endl;
uniikit.insert(lista[loppu]);
montako[lista[loppu]]++;
while (uniikit.size() > sallittu) {
//cout << "PAKKO SIIRTAA ALKUA OIKEALLE" << endl;
alku++;
//cout << "ALUKSI JALJELLA ON " << montako[lista[alku]] << endl;
montako[lista[alku]] -= 1;
//cout << "JALJELLA ON " << montako[lista[alku]] << endl;
if (montako[lista[alku]] == 0) {
//cout << "PAASTIIN ERASEMAAN" << endl;
uniikit.erase(lista[alku]);
}
}
//cout << "SIIRTELYN JALKEEN ALKU ON " << alku << " JA LOPPU ON " << loppu << endl;
ans += loppu - alku;
}
cout << ans;
int q;
cin >> q;
}