#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n; // 5
int a[n];
for(int i=0; i<n; i++)
{
cin>>a[i]; // 1 1 2 3 4
}
int k;
cin>>k; // 3
int i=0 , j=0; int sum = 0; int ans = -1;
unordered_map<int,int>mp;
while(j<n)
{
//calculation part
sum = sum + a[j]; // Running sum find out kela
mp[a[j]] = mp[a[j]] + 1; // increment the map to count the frequency of each element
if(j-i+1 < k)
{
j++;
}
else if(j-i+1 == k)
{
// mp.size means map madhe jevdhe elements sarvanchi frequency same aahe... tar mg ti equal to k honar
if(mp.size() == k)
{
ans = max(ans , sum); // get the maximum sum
}
// for a window mp.size() < k then it means duplicates are present in the window
// and then whatever value is present in the sum can not be the potential ans
// slide the window
sum = sum - a[i]; // Remove that ' i ' index Element from sum it will decrease the sum
mp[a[i]] = mp[a[i]] - 1; // also remove from map it will Decrease the frequency from the map
// if frequency of that particular element becomes zero in map
if(mp[a[i]] == 0)
{
mp.erase(a[i]); // Remove the element from map also
}
// Increment both the pointers
i++;
j++;
}
}
cout<<ans<<" ";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIAp7CiAgICBpbnQgbjsKICAgIGNpbj4+bjsgLy8gNQoKICAgIGludCBhW25dOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIGNpbj4+YVtpXTsgLy8gMSAxIDIgMyA0CiAgICB9CgogICAgaW50IGs7CiAgICBjaW4+Pms7IC8vIDMgCgogICAgaW50IGk9MCAsIGo9MDsgICAgICAgICBpbnQgc3VtID0gMDsgICAgICAgaW50IGFucyA9IC0xOwoKICAgIHVub3JkZXJlZF9tYXA8aW50LGludD5tcDsKCiAgICB3aGlsZShqPG4pCiAgICB7CiAgICAgICAgLy9jYWxjdWxhdGlvbiBwYXJ0CiAgICAgICAgc3VtID0gc3VtICsgYVtqXTsgLy8gUnVubmluZyBzdW0gZmluZCBvdXQga2VsYQogICAgICAgIG1wW2Fbal1dID0gbXBbYVtqXV0gKyAxOyAvLyBpbmNyZW1lbnQgdGhlIG1hcCB0byBjb3VudCB0aGUgZnJlcXVlbmN5IG9mIGVhY2ggZWxlbWVudCAKCiAgICAgICAgaWYoai1pKzEgPCBrKQogICAgICAgIHsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGotaSsxID09IGspCiAgICAgICAgewogICAgICAgICAgICAvLyBtcC5zaXplIG1lYW5zIG1hcCBtYWRoZSBqZXZkaGUgZWxlbWVudHMgc2FydmFuY2hpIGZyZXF1ZW5jeSBzYW1lIGFhaGUuLi4gdGFyIG1nIHRpIGVxdWFsIHRvIGsgaG9uYXIKICAgICAgICAgICAgaWYobXAuc2l6ZSgpID09IGspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFucyA9IG1heChhbnMgLCBzdW0pOyAvLyBnZXQgdGhlIG1heGltdW0gc3VtCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGZvciBhIHdpbmRvdyBtcC5zaXplKCkgPCBrIHRoZW4gaXQgbWVhbnMgZHVwbGljYXRlcyBhcmUgcHJlc2VudCBpbiB0aGUgd2luZG93CiAgICAgICAgICAgIC8vIGFuZCB0aGVuIHdoYXRldmVyIHZhbHVlIGlzIHByZXNlbnQgaW4gdGhlIHN1bSBjYW4gbm90IGJlIHRoZSBwb3RlbnRpYWwgYW5zCgogICAgICAgICAgICAvLyBzbGlkZSB0aGUgd2luZG93CiAgICAgICAgICAgIHN1bSA9IHN1bSAtIGFbaV07IC8vIFJlbW92ZSB0aGF0ICcgaSAnIGluZGV4IEVsZW1lbnQgZnJvbSBzdW0gaXQgd2lsbCBkZWNyZWFzZSB0aGUgc3VtCiAgICAgICAgICAgIG1wW2FbaV1dID0gbXBbYVtpXV0gLSAxOyAvLyBhbHNvIHJlbW92ZSBmcm9tIG1hcCBpdCB3aWxsIERlY3JlYXNlICB0aGUgZnJlcXVlbmN5IGZyb20gdGhlIG1hcCAKCiAgICAgICAgICAgIC8vIGlmIGZyZXF1ZW5jeSBvZiB0aGF0IHBhcnRpY3VsYXIgZWxlbWVudCBiZWNvbWVzIHplcm8gaW4gbWFwCiAgICAgICAgICAgIGlmKG1wW2FbaV1dID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1wLmVyYXNlKGFbaV0pOyAvLyBSZW1vdmUgdGhlIGVsZW1lbnQgZnJvbSBtYXAgYWxzbyAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gSW5jcmVtZW50IGJvdGggdGhlIHBvaW50ZXJzCiAgICAgICAgICAgIGkrKzsgCgogICAgICAgICAgICBqKys7CiAgICAgICAgfQogICAgfQogICAgY291dDw8YW5zPDwiICI7IAp9