#include using namespace std; using ll = long long; int main() { istream::sync_with_stdio(false); ll n, m, q; cin >> n >> m >> q; vector> snowflakes(n, vector(m)); for (ll i = 0; i < n; ++i) { string line; cin >> line; for (ll j = 0; j < m; ++j) { snowflakes[i][j] = line[j] == '*'; } } vector snowflakesInColumn(m); vector snowflakesTime; for (ll j = 0; j < m; ++j) { for (ll i = n; i-- > 0; ) { if (snowflakes[i][j]) { snowflakesTime.push_back(n-i-1 - snowflakesInColumn[j]++); } } } std::sort(snowflakesTime.begin(), snowflakesTime.end()); vector> times(q); for (ll i = 0; i < q; ++i) { ll time; cin >> time; times[i] = {time, i}; } std::sort(times.begin(), times.end()); ll snowflakeIndex = 0; vector result(q); ll totalSnowflakes = 0; for (auto & time : times) { ll currentSnowflakes = 0; while (snowflakeIndex < snowflakesTime.size() && snowflakesTime[snowflakeIndex] <= time.first) { ++currentSnowflakes; ++snowflakeIndex; } result[time.second] = currentSnowflakes + totalSnowflakes; totalSnowflakes += currentSnowflakes; } for (ll x : result) { cout << x << '\n'; } return 0; }