from itertools import chain


M, N, Q = list(map(int, input("").split(" ")))

snow = [
    [1 if c == "*" else 0 for c in input("")] for  _ in range(M)
][::-1]


queries = [
    int(input("")) for _ in range(Q)
]

goto_q = max(queries)

def visual(q_):
    for row in q_:
        print("".join({0: ".", 1: "*", 2: "+"}.get(c) for c in row))

            


res = {}

sum_of_fallen = 0
# zero iter
for coln in range(N):
    for rown in range(M):
        if snow[rown][coln] == 1:
            snow[rown][coln] = 2
            sum_of_fallen += 1
        if snow[rown][coln] == 2:
            ...
        else:
            break
     
res[0] = sum_of_fallen 

for q_n in range(1, goto_q + 1):
    for rn in range(M-1):
        for cn in range(N):
            if snow[rn][cn] == 0 and snow[rn+1][cn] == 1:
                snow[rn][cn], snow[rn+1][cn] = snow[rn+1][cn], snow[rn][cn]

    for coln in range(N):
        for rown in range(M):
            if snow[rown][coln] == 1:
                snow[rown][coln] = 2
                sum_of_fallen += 1
            if snow[rown][coln] == 2:
                ...
            else:
                break
             
    if q_n in queries:
        res[q_n] = sum_of_fallen


    #visual(snow)

for q in queries:
    print(res[q])

