
def remove_connection(d, stack):
y, x = stack[-1]
dirs = [(1, 0), (-1, 0), (0, 1), (0, -1)]
for dy, dx in dirs:
ny, nx = y + dy, x + dx
if ny in (-1, N) or nx in (-1, N):
continue
if table[ny][nx] == d:
table[ny][nx] = '.'
stack.append((ny, nx))
remove_connection(d, stack)
return
N, K, Q = map(int, input().split())
table = [['.'] * N for _ in range(N)]
for i in range(N):
line = input()
for j in range(N):
table[i][j] = line[j]
for _ in range(Q):
r, c, d = input().split()
y, x = map(lambda k: int(k) - 1, (r, c))
stack = [(y, x)]
remove_connection(d, stack)
if len(stack) < K:
for yi, xi in stack:
table[yi][xi] = d
for i in range(len(table)):
print(''.join(table[i]))
K개 이상 요소를 반복하는 것보다 K개 미만인 요소를 2번 반복하는 것이 낫다고 판단했다.
