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
from itertools import chain, combinations

def solve(L):
    M = {}
    result = 0
    for ss in chain.from_iterable(combinations(L, r) for r in range(len(L)+1)):
        if ss not in M: M[ss] = 0
        M[ss] += 1
    for (_, count) in M.items():
        if count > 1:
            result += 1
    return result

def brut(L, Q):
    L = list(L)
    print(solve(L))
    for (p, z) in Q:
        L[p-1] = z
        print(solve(L))

if __name__ == "__main__":
    [n, q] = list(map(int, input().strip().split(' ')))
    L = list(input().strip())
    Q = []
    for i in range(q):
        [p, z] = list(input().strip().split(' '))
        p = int(p)
        Q.append((p, z))
    brut(L, Q)