func maxSum(nums []int, m int, k int) int64 {
mp := make(map[int]int, 0)
sum, ans := 0, 0
cnt := 0
for i, x := range nums {
sum += x
if mp[x] == 0 {
cnt ++
}
mp[x] ++
if i < k - 1 {
continue
}
if cnt >= m {
ans = max(ans, sum)
}
sum -= nums[i - k + 1]
if mp[nums[i - k + 1]] --; mp[nums[i - k + 1]] == 0 {
cnt --
}
}
return int64(ans)
}