#include<bits/stdc++.h>
#include<complex>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
#define x() real()
#define y() imag()
#define endl '\n'
#define ll long long
typedef long double T;
typedef complex<T> point;
#define pii pair<int,int>
#define fastIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
using namespace __gnu_pbds;
template <typename T> using o_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
const int N = 2e5 + 5;
int cnt[N], distinct, ar[N], nxt[N];
int main()
{
//fastIO;
int t = 1; //cin >> t;
while (t--)
{
int n, k; cin >> n >> k;
for (int i = 1 ; i <= n; i++)cin >> ar[i];
nxt[n] = n + 1;
for (int i = n - 1; i >= 1; i--)
{
if (ar[i] == ar[i + 1])nxt[i] = nxt[i + 1];
else nxt[i] = i + 1;
}
int l = 1, r = 0;
int ans = 0;
int lim = 13;
while (1)
{
lim--;
if (distinct <= k && r < n)
{
r++;
int val = ar[r];
cnt[val]++;
if (cnt[val] == 1)distinct++;
if (distinct == k)
{
int len = nxt[l] - l;
ans += len;
}
}
else
{
int val = ar[l];
l++;
cnt[val]--;
if (cnt[val] == 0)distinct--;
if (distinct == k)ans++;
}
if (r == n && distinct < k)break;
}
cout << ans << endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KIAojaW5jbHVkZTxjb21wbGV4PgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIAojZGVmaW5lIHgoKSByZWFsKCkKI2RlZmluZSB5KCkgaW1hZygpCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgbGwgbG9uZyBsb25nCnR5cGVkZWYgbG9uZyBkb3VibGUgVDsKdHlwZWRlZiBjb21wbGV4PFQ+IHBvaW50OwojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgZmFzdElPIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKQogCiAKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1c2luZyBvX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKIApjb25zdCBpbnQgTiA9IDJlNSArIDU7CmludCBjbnRbTl0sIGRpc3RpbmN0LCBhcltOXSwgbnh0W05dOwogCmludCBtYWluKCkKewoJLy9mYXN0SU87CiAKCWludCB0ID0gMTsgLy9jaW4gPj4gdDsKIAoJd2hpbGUgKHQtLSkKCXsKCQlpbnQgbiwgazsgY2luID4+IG4gPj4gazsKIAoJCWZvciAoaW50IGkgPSAxCTsgaSA8PSBuOyBpKyspY2luID4+IGFyW2ldOwogCgkJbnh0W25dID0gbiArIDE7CiAKCQlmb3IgKGludCBpID0gbiAtIDE7IGkgPj0gMTsgaS0tKQoJCXsKCQkJaWYgKGFyW2ldID09IGFyW2kgKyAxXSlueHRbaV0gPSBueHRbaSArIDFdOwoJCQllbHNlIG54dFtpXSA9IGkgKyAxOwoJCX0KIAoJCWludCBsID0gMSwgciA9IDA7CgkJaW50IGFucyA9IDA7CgkJaW50IGxpbSA9IDEzOwogCgkJd2hpbGUgKDEpCgkJewoJCQlsaW0tLTsKIAoJCQlpZiAoZGlzdGluY3QgPD0gayAmJiByIDwgbikKCQkJewoJCQkJcisrOwoJCQkJaW50IHZhbCA9IGFyW3JdOwogCgkJCQljbnRbdmFsXSsrOwoJCQkJaWYgKGNudFt2YWxdID09IDEpZGlzdGluY3QrKzsKIAoJCQkJaWYgKGRpc3RpbmN0ID09IGspCgkJCQl7CgkJCQkJaW50IGxlbiA9IG54dFtsXSAtIGw7CgkJCQkJYW5zICs9IGxlbjsKCQkJCX0KCQkJfQogCgkJCWVsc2UKCQkJewoJCQkJaW50IHZhbCA9IGFyW2xdOwoJCQkJbCsrOwogCgkJCQljbnRbdmFsXS0tOwoJCQkJaWYgKGNudFt2YWxdID09IDApZGlzdGluY3QtLTsKIAoJCQkJaWYgKGRpc3RpbmN0ID09IGspYW5zKys7CgkJCX0KIAoJCQlpZiAociA9PSBuICYmIGRpc3RpbmN0IDwgaylicmVhazsKCQl9CiAKCQljb3V0IDw8IGFucyA8PCBlbmRsOwoJfQogCglyZXR1cm4gMDsKfQ==