import java.util.*;
public class Main {
public static void main
(String[] args
) { int arr[] ={1,2,3};
int k = 2;
int i =0,count =0;
Map
<Integer,Integer
>map
= new HashMap
<>(); for(int j =0; j< arr.length; j++){
map.put(arr[j],map.getOrDefault(arr[j],0)+1);
while(map.size() >k ){
if(map.get(arr[i]) > 0){
map.put(arr[i],map.get(arr[i])-1);
if(map.get(arr[i]) == 0){
map.remove(arr[i]);
}
i++;
}
}
if(map.size()<=k){
count += (j-i+1);
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgaW50IGFycltdID17MSwyLDN9OwogICAgICAgIGludCBrID0gMjsKICAgICAgICBpbnQgaSA9MCxjb3VudCA9MDsKICAgICAgICBNYXA8SW50ZWdlcixJbnRlZ2VyPm1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBmb3IoaW50IGogPTA7IGo8IGFyci5sZW5ndGg7IGorKyl7CiAgICAgICAgICAgIG1hcC5wdXQoYXJyW2pdLG1hcC5nZXRPckRlZmF1bHQoYXJyW2pdLDApKzEpOwoKICAgICAgICAgICAgd2hpbGUobWFwLnNpemUoKSA+ayApewogICAgICAgICAgICAgICAgaWYobWFwLmdldChhcnJbaV0pID4gMCl7CiAgICAgICAgICAgICAgICAgICAgbWFwLnB1dChhcnJbaV0sbWFwLmdldChhcnJbaV0pLTEpOwogICAgICAgICAgICAgICAgICAgIGlmKG1hcC5nZXQoYXJyW2ldKSA9PSAwKXsKICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnJlbW92ZShhcnJbaV0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYobWFwLnNpemUoKTw9ayl7CiAgICAgICAgICAgICAgICBjb3VudCArPSAoai1pKzEpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb3VudCk7CiAgICB9Cn0=