#include <bits/stdc++.h>
using namespace std;
const int N = 1010, M = N * N;
int n, m;
char g[N][N];
int ans[N][N];
pair<int, int> q[M];
void bfs()
{
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
int hh = 0, tt = -1;
for (int i = 0; i < n; i ++ )
for (int j = 0; j < m; j ++ )
if (g[i][j] == '1')
{
ans[i][j] = 1;
q[ ++ tt] = {i, j};
}
while (hh <= tt)
{
int tx = q[hh].first, ty = q[hh].second;
hh ++;
for (int i = 0; i < 4; i ++ )
{
int x = tx + dx[i], y = ty + dy[i];
if (x < 0 || x >= n || y < 0 || y >= m) continue;
if (!ans[x][y])
{
ans[x][y] = ans[tx][ty] + 1;
q[++ tt ] = {x, y};
}
}
}
for (int i = 0; i < n; i ++ )
{
for (int j = 0; j < m; j ++ )
printf("%d ", ans[i][j] - 1);
puts("");
}
}
int main()
{
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i ++ )
{
scanf("%s", g[i]);
}
bfs();
return 0;
}