#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;
    }
}