#include <iostream>
#include<vector>
#include<unordered_map>
using namespace std;
int main() {
vector<int> nums={1,2,3};
int k=2;
int low=0;
int high=0;
int count=0;
unordered_map<int,int> m;
for(high=0;high<nums.size();high++) {
m[nums[high]]++;
while(m.size()>k && low<=high) {
m[nums[low]]--;
if(m[nums[low]]==0) {
m.erase(nums[low]);
}
low++;
}
count+=high-low+1;
}
cout<<count<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+IG51bXM9ezEsMiwzfTsKCWludCBrPTI7CglpbnQgbG93PTA7CglpbnQgaGlnaD0wOwoJaW50IGNvdW50PTA7Cgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+IG07CgkKCWZvcihoaWdoPTA7aGlnaDxudW1zLnNpemUoKTtoaWdoKyspIHsKCQltW251bXNbaGlnaF1dKys7CgkJd2hpbGUobS5zaXplKCk+ayAmJiBsb3c8PWhpZ2gpIHsKCQkJbVtudW1zW2xvd11dLS07CgkJCWlmKG1bbnVtc1tsb3ddXT09MCkgewoJCQkJbS5lcmFzZShudW1zW2xvd10pOwoJCQl9CgkJCWxvdysrOwoJCX0KCQljb3VudCs9aGlnaC1sb3crMTsKCX0KCWNvdXQ8PGNvdW50PDxlbmRsOwoJcmV0dXJuIDA7Cn0=