#include<bits/stdc++.h>
using namespace std;
int main() {
int n, k;cin>>n>>k;
vector<int> arr(n,0);
for(int i = 0;i<n;i++){
cin>>arr[i];
}
//create a adjacency list of value by positions
unordered_map<int, vector<int>>mpp;
for(int i = 0;i<n;i++){
mpp[arr[i]].push_back(i);
}
int ans = 0;
for (auto &p : mpp) {
vector<int>& indexList = p.second;
int size = indexList.size();
int i = 0;
for (int j = 0; j < size; j++) {
while (i <= j && (indexList[j] - indexList[i] - (j - i)) > k) {
i++;
}
ans = max(ans, j - i + 1);
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJCglpbnQgbiwgaztjaW4+Pm4+Pms7Cgl2ZWN0b3I8aW50PiBhcnIobiwwKTsKCWZvcihpbnQgaSA9IDA7aTxuO2krKyl7CgkJY2luPj5hcnJbaV07Cgl9CgkKCS8vY3JlYXRlIGEgYWRqYWNlbmN5IGxpc3Qgb2YgdmFsdWUgYnkgcG9zaXRpb25zCgl1bm9yZGVyZWRfbWFwPGludCwgdmVjdG9yPGludD4+bXBwOwoJZm9yKGludCBpID0gMDtpPG47aSsrKXsKCQltcHBbYXJyW2ldXS5wdXNoX2JhY2soaSk7Cgl9CgkKCWludCBhbnMgPSAwOwoJZm9yIChhdXRvICZwIDogbXBwKSB7CgkgICAgdmVjdG9yPGludD4mIGluZGV4TGlzdCA9IHAuc2Vjb25kOwoJICAgIGludCBzaXplID0gaW5kZXhMaXN0LnNpemUoKTsKCQoJICAgIGludCBpID0gMDsKCSAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGorKykgewoJICAgICAgICB3aGlsZSAoaSA8PSBqICYmIChpbmRleExpc3Rbal0gLSBpbmRleExpc3RbaV0gLSAoaiAtIGkpKSA+IGspIHsKCSAgICAgICAgICAgIGkrKzsKCSAgICAgICAgfQoJICAgICAgICBhbnMgPSBtYXgoYW5zLCBqIC0gaSArIDEpOyAKCSAgICB9Cgl9CgkKCWNvdXQ8PGFuczw8ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=