#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define pb push_back #define mp make_pair #define pii pair #define pll pair #define all(x) (x).begin(), (x).end() #define fi first #define se second using namespace std; const int nmax = 1005; int n, m, h, i, j, k, cnt; char s[nmax][nmax], a[nmax][nmax], sol[nmax][nmax]; int main() { // freopen("test.in", "r", stdin); // freopen("test.out", "w", stdout); scanf("%d%d%d", &n, &m, &h); for(i = 1; i <= n; i++) scanf("%s", s[i] + 1); for(i = 1; i <= n; i++) for(j = 1; j <= m; j++) { if(s[i][j] == '#') sol[i][j] = '9'; else sol[i][j] = s[i][j]; } for(i = 1; i <= h; i++) scanf("%s", a[i] + 1); for(i = 1; i <= m; i++) { cnt = 0; for(j = h; j; j--) { if(a[j][i] == '#') cnt++; else break; } for(j = 1; j <= n; j++) if(s[j][i] == '#') sol[j][i] = min(sol[j][i], (char)(cnt + '0')); } for(i = 1; i <= h; i++) scanf("%s", a[i] + 1); for(i = 1, k = n; i <= n; i++, k--) { cnt = 0; for(j = h; j; j--) { if(a[j][i] == '#') cnt++; else break; } for(j = 1; j <= m; j++) if(s[k][j] == '#') sol[k][j] = min(sol[k][j], (char)(cnt + '0')); } for(i = 1; i <= n; i++) printf("%s\n", sol[i] + 1); return 0; }