#include #include int main() { int n, m ,q; scanf("%d %d %d\n",&n,&m,&q); char *grid = malloc(m*n); for(int nn = 0; nn < n; nn++) { for (int mm = 0; mm < m; mm++) { grid[nn*m+mm] = getchar(); } getchar(); // newline } int t[q]; int tmax = 0; for (int qq = 0; qq < q; qq++) { int time; scanf("%d", &time); t[qq]=time; if (time > tmax ) { tmax = time; } } // for (int i = n-1; i >=0; i--) { // for (int j = 0; j < m; j++) { // //printf("%d: %c",i*m+j,grid[i*m+j]); // printf("%c", grid[i*m+j]); // } // printf("\n"); // } // for (int qq = 0; qq < q; qq++){ // printf("%d\n", t[qq]); // } // printf("--------\n"); // printf("%d", t[q-1]); int ti=0; int results[q-1]; for (int i = 0; i <= tmax; i++) { for (int asked =0; asked < q; asked++){ int res = 0; if (t[asked]==i) { // count for (int mm = 0; mm < m; mm++) { //printf("%d %d %d %d\n", l, m, mm, l*m+mm); for (int nn = n-1; nn >= 0; nn--){ // printf("%d: %c\n",nn*m+mm, grid[nn*m+mm]); //printf("%d\n", nn*m+mm); if (grid[nn*m+mm]=='.'){ break; } res++; } } //printf("%d\n", res); ti++; // printf("time %d found in time %d for time %d\n", asked, t[asked], i); results[asked] = res; } } for (int nn = n-1; nn > 0;nn--) { for (int mm = 0; mm < m; mm++) { //printf("%c", grid[nn*m+mm]); //printf("%d %d\n", nn*m+mm, (nn-1)*m+mm); if (grid[nn*m+mm] == '.' && grid[(nn-1)*m+mm] == '*'){ grid[nn*m+mm] = '*'; grid[(nn-1)*m+mm] = '.'; // printf("%d pada", (nn-1)*m+mm); } } // printf("\n"); } } for (int i = 0; i < q; i++){ printf("%d\n",results[i]); } free(grid); return 0; }