N,M_NUM, Q = map(int, input().split())
M_T = []
for i in range(N):
    M_T.append(list(input()))

M = []
for _ in range(M_NUM):
    M.append([0] * N)

for i in range(len(M_T)):
    for j in range(len(M_T[i])):
        M[j][i] = M_T[i][j]
M.reverse()
#print(M)
T = []
for i in range(Q):
    T.append(int(input()))
dict = {}
stoped_at = [len(M[0]) - 2] * len(M)
def pile():
    # print('matrix')
    # for i in M:
    #     print(i)
    summ = 0
    for i in range(len(M)):
        for j in range(len(M[0]) - 1, -1, -1):
            if M[i][j] == '*':
                summ += 1
            else:
                stoped_at[i] = j - 1
                break
        else:
            stoped_at[i] = 0
    return summ

dict[0] = pile()
lastIdx = 0
#print(dict)
#print('stoped', stoped_at)


for s in range(len(M[0])):
    summ = 0
    for i in range(M_NUM):
        counting = 0
        is_counting = True
        if stoped_at[i] != 0:
            for j in range(stoped_at[i], -1, -1):
                if M[i][j] == '*':
                    if M[i][j + 1] == '.':
                        M[i][j], M[i][j + 1] = M[i][j + 1], M[i][j]
                if is_counting and M[i][j + 1] == '*':
                    counting += 1
                elif is_counting and M[i][j + 1] == '.':
                    is_counting = False
                    stoped_at[i] = j
            summ += counting
            
        

    # if i + 1 in dict.keys():
    #     dict[i + 1] += pile()
    #     lastIdx = i + 1
    # else:
    #dict[s + 1] = pile()
    dict[s + 1] = summ + dict[s]
    lastIdx = s + 1

        # print('matix')
        # for ij in M:
        #     print(ij)
        # print()

for i in T:
    if i >= len(dict):
        print(dict[lastIdx])
    else:
        print(dict[i])

