#include using namespace std; const int INF = 1e6; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int H, W; cin >> H >> W; vector bd; bd.push_back(string(W + 2, '.')); for (int i = 0; i < H; i++) { string tmp; cin >> tmp; tmp = "." + tmp + "."; bd.push_back(tmp); } bd.push_back(string(W + 2, '.')); vector > dp(H + 2, vector(W + 2)); int ret = 0; for (int i = 1; i <= H; i++) { for (int j = 1; j <= W; j++) { if (bd[i][j] == '#') { dp[i][j] = min({dp[i-1][j], dp[i][j-1], dp[i-1][j-1]}) + 1; ret = max(ret, dp[i][j]); } } } cout << (ret + 1) / 2 << endl; return 0; }