1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
n,k,t = [int(x) for x in input().split()]
inp = input()
ans = -1

prefix_sum = [(0,0,0)]
for el in inp:
    if el == "3":
        prefix_sum.append((prefix_sum[-1][0],prefix_sum[-1][1],prefix_sum[-1][2]+1))
    elif el == "2":
        prefix_sum.append((prefix_sum[-1][0],prefix_sum[-1][1]+1,prefix_sum[-1][2]))
    elif el == "1":
        prefix_sum.append((prefix_sum[-1][0]+1,prefix_sum[-1][1],prefix_sum[-1][2]))

#print(prefix_sum)
if prefix_sum[-1][0] < k:
    ans = prefix_sum[-1][2] + prefix_sum[-1][0] + min(k - prefix_sum[-1][0],prefix_sum[-1][1])
    print(ans)

else:

    for t1 in range(1,n-2*t+1):
        for t2 in range(t1+t+1,n+2-t):
            lost = prefix_sum[t1+t-1][0] + prefix_sum[t1+t-1][1] - prefix_sum[t1-1][1] + prefix_sum[t2+t-1][1]-prefix_sum[t2-1][1] + prefix_sum[-1][0] - prefix_sum[t2-1][0]
            if lost > k:
                continue
            a = prefix_sum[t1-1][2]+ prefix_sum[-1][2] -prefix_sum[t2+t-1][2] + prefix_sum[t1-1][0] + prefix_sum[-1][0] - prefix_sum[t2+t-1][0]
            a += min(k - lost,prefix_sum[t1-1][1]+prefix_sum[-1][1]-prefix_sum[t2+t-1][1])
            if a > ans:
                ans = a
    print(ans)