dr = [0, 0, 1, -1] dc = [1, -1, 0, 0] H, W = map(int, raw_input().split()) board = [map(int, raw_input().split()) for _ in xrange(H)] Q = input() queries = [map(int, raw_input().split()) for _ in xrange(Q)] def dfs(r, c, color): visited = set() stack = [(r, c)] while len(stack) > 0: r, c = stack.pop() if (r, c) in visited or board[r][c] == color: continue visited.add((r, c)) board[r][c] = color for i in xrange(4): nr, nc = r+dr[i], c+dc[i] if nr < 0 or nr >= H or nc < 0 or nc >= W or (nr, nc) in visited: continue stack.append((nr, nc)) for q in queries: dfs(q[0]-1, q[1]-1, q[2]) for i in xrange(H): print ''.join(map(str, board[i]))