n, m, k = [int(x) for x in input().split()]

start = [input() for _ in range(n)]

grid = [[False]*60 for _ in range(60)]

for i in range(n):
    for j in range(m):
        grid[i+20][j+20] = start[i][j] == '#'

num_brute = 20
area = sum(sum(1 for i in range(60) if s[i]) for s in grid)
areas = [area]

for step in range(num_brute):
    new_grid = [[False]*60 for _ in range(60)]
    for i in range(60):
        for j in range(60):
            for di in range(i-1, i+2):
                if di >= 0 and di < 60:
                    for dj in range(j-1, j+2):
                        if dj >= 0 and dj < 60:
                            new_grid[i][j] |= grid[di][dj]
    grid = new_grid
    area = sum(sum(1 for i in range(60) if s[i]) for s in grid)
    areas.append(area)

if k < len(areas):
    print(areas[k])
else:
    y1, y2, y3 = areas[-3:]
    # So we have y1 = a*18^2 + b 18 + c 
    # So we have y2 = a*19^2 + b 19 + c 
    # So we have y3 = a*20^2 + b 20 + c 

    a = y1 - 2*y2 + y3
    b = -39*y1 + 76*y2 - 37*y3
    c = 380*y1 - 720*y2 + 342*y3

    res = (a*k*k + b*k + c)//2
    print(res)
