#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int H, W; cin >> H >> W; vector S(H); for (int i = 0; i < H; i++) { cin >> S[i]; } // 横・縦のカギの開始位置を、共通の番号で管理する vector> start(1, {-1, -1}); vector dir(1, -1); vector> horizontal(H, vector(W, 0)); vector> vertical(H, vector(W, 0)); for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { if (S[i][j] != '.') continue; bool across = (j == 0 || S[i][j - 1] == '#') && (j + 1 < W && S[i][j + 1] == '.'); bool down = (i == 0 || S[i - 1][j] == '#') && (i + 1 < H && S[i + 1][j] == '.'); if (across || down) { int k = (int)start.size(); start.push_back({i, j}); if (across) horizontal[i][j] = k; if (down) vertical[i][j] = k; } } } int Q; cin >> Q; while (Q--) { int K, D; string A; cin >> K >> D >> A; auto [i, j] = start[K]; for (char c : A) { S[i][j] = c; if (D == 0) { j++; } else { i++; } } for (int i = 0; i < H; i++) { cout << S[i] << '\n'; } } return 0; }