classSolution:defmaxSum(self, nums: List[int], m:int, k:int)->int:
ans = s =0
q = deque()
cnt = Counter()for v in nums:
q.append(v)
cnt[v]+=1
s += v
iflen(q)> k:
p = q.popleft()
cnt[p]-=1ifnot cnt[p]:del cnt[p]
s -= p
iflen(q)== k andlen(cnt)>=m:
ans =max(ans,s)return ans
MOD =10**9+7classSolution:defcountKSubsequencesWithMaxBeauty(self, s:str, k:int)->int:
cnt = Counter(s)if k >len(cnt):return0
cc =sorted([(v,p)for p,v in cnt.items()],reverse=True)
ans =1
big =0for v,_ in cc:if v > cc[k-1][0]:
ans = ans * v % MOD
big +=1else:break
ck =list(cnt.values()).count(cc[k-1][0])# print(ans * pow(cc[k-1][0],k-big,MOD)%MOD, big ,ck)
ans = ans *pow(cc[k-1][0],k-big,MOD)%MOD* comb(ck,k-big)%MOD
return ans