#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 1e3;
const int INF = 1e9;
int n, m, h[maxn + 10], L[maxn + 10], R[maxn + 10];
ll ans[maxn + 10][maxn + 10];
char a[maxn + 10][maxn + 10];
vector<int> st;
void solve(int x)
{
st.clear();
st.push_back(0);
h[0] = h[m + 1] = -INF;
for (int i = 1; i <= m; i++)
{
h[i] = a[x][i] == '.' ? h[i] + 1 : 0;
while (h[i] <= h[st.back()])
st.pop_back();
L[i] = st.back();
st.push_back(i);
}
st.clear();
st.push_back(m + 1);
for (int i = m; i >= 1; i--)
{
while (h[i] < h[st.back()])
st.pop_back();
R[i] = st.back();
st.push_back(i);
}
for (int i = 1; i <= m; i++)
{
int A = min(i - L[i], R[i] - i);
int B = max(i - L[i], R[i] - i);
ans[h[i]][1]++;
ans[h[i]][A + 1]--;
ans[h[i]][B + 1]--;
ans[h[i]][A + B + 1]++;
}
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("MAXIMUM.INP", "r"))
{
freopen("MAXIMUM.INP", "r", stdin);
freopen("MAXIMUM.OUT", "w", stdout);
}
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> a[i][j];
for (int i = 1; i <= n; i++)
solve(i);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
ans[i][j] += ans[i][j - 1];
for (int j = 1; j <= m; j++)
ans[i][j] += ans[i][j - 1];
}
for (int j = 1; j <= m; j++)
for (int i = n; i >= 1; i--)
ans[i][j] += ans[i + 1][j];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
cout << ans[i][j] << ' ';
el;
}
}