#include using namespace std; int main(){ int H,W; cin >> H >> W; vector S(H); for(int i = 0; i < H; i++){ cin >> S[i]; } vector> Key; for(int i = 0; i < H; i++){ for(int j = 0; j < W; j++){ if(S[i][j] == '.' && ( ((j == 0 || S[i][j - 1] == '#') && j < W - 1 && S[i][j + 1] == '.')|| ((i == 0 || S[i - 1][j] == '#') && i < H - 1 && S[i + 1][j] == '.') )){ Key.push_back({i,j}); } } } bool OK = true; int K; cin >> K; for(int i = 0; i < K; i++){ string R,C; cin >> R >> C; auto [x,y] = Key[i]; if(R != "-"){ for(int k = 0; k < R.size(); k++){ if(y + k >= W || !(S[x][y + k] == '.' || S[x][y + k] == R[k])){ OK = false; break; } S[x][y + k] = R[k]; } if(y + R.size() < W && S[x][y + R.size()] != '#'){ OK = false; } } if(C != "-"){ for(int k = 0; k < C.size(); k++){ if(x + k >= H || !(S[x + k][y] == '.' || S[x + k][y] == C[k])){ OK = false; break; } S[x + k][y] = C[k]; } if(x + C.size() < H && S[x + C.size()][y] != '#'){ OK = false; } } } if(OK){ cout << "Yes" << endl; }else{ cout << "No" <