using namespace std;
#include <bits/stdc++.h>

void fix(vector<string>& grid, int col);

int main() {

    // Read in stuff.
    int r, c;
    cin >> r >> c;
    vector<string> grid(r);
    for (int i=0; i<r; i++)
        cin >> grid[i];

    for (int j=0; j<c; j++)
        fix(grid, j);

    for (int i=0; i<r; i++)
        cout << grid[i] << endl;

    return 0;
}

void fix(vector<string>& grid, int col) {

    int numR = grid.size();

    int cur = numR-1;
    while (cur >= 0) {

        // cur is inclusive bottom, div is exclusive.
        int div = cur;
        while (div>=0 && grid[div][col] != '#') div--;

        int numA = 0;
        for (int i=div+1; i<=cur; i++)
            if (grid[i][col] == 'a')
                numA++;
        int i,myr;
        for (i=0,myr=cur; i<numA; i++,myr--)
            grid[myr][col] = 'a';
        while (myr>div) {
            grid[myr][col] = '.';
            myr--;
        }

        cur = div-1;
    }
}
