#include <iostream>
#include <vector>

using namespace std;

char a[11][11];
int igracke[11][11];
int kockice[11][11];
int topovi[11][11];
int n,m;

bool SlobodnoPolje(int u, int v)
{
    
    int zadnji=0,prvi=n;
    for(int i=0;i<n;i++)
    {
        
        if(i<v)
        {
            if(kockice[i][u] || igracke[i][u]) zadnji=i;
        }
        else
        {
            if(kockice[i][u] || igracke[i][u]) prvi =i;
        }
    }
    for(int i=zadnji;i<prvi;i++) if (topovi[i][u]) return false;
    zadnji=0;
    prvi=m;
    for(int i=0;i<m;i++)
    {
        
        if(i<u)
        {
            if(kockice[v][i] || igracke[v][i]) zadnji=i;
        }
        else
        {
            if(kockice[v][i] || igracke[v][i]) prvi =i;
        }
    }
    for(int i=zadnji;i<prvi;i++) if (topovi[v][i]) return false;
    return true;
}


bool proveri()
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(a[i][j]>=48 && a[i][j]<=52)
            {
                int brojac=0;
                if(topovi[i-1][j]==1) brojac++;
                if(topovi[i+1][j]==1) brojac++;
                if(topovi[i][j-1]==1) brojac++;
                if(topovi[i][j+1]==1) brojac++;
                if(brojac!=a[i][j]-48) return false;
            }
            if(a[i][j]=='.' && SlobodnoPolje(j,i)) return false;
        }
    }
}

bool qw=false;
void postaviTopove(int x, int y)
{
    if(SlobodnoPolje(x,y)) topovi[y][x]=1;
    if(x==m-1 && y<n-1) postaviTopove(0,y+1);
    else if(x==m-1 && y==n-1)
    {
        if(proveri)
        {
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    if(topovi[i][j]) cout << "C ";
                    else cout << a[i][j] << " ";
                }
                cout << endl;
            }
            qw=true;
            return;
        }
    }
    else postaviTopove(x+1,y);
    topovi[y][x]=0;
}

int main()
{
    cin >> n >> m;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            igracke[i][j]=0;
            kockice[i][j]=0;
            topovi[i][j]=0;
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cin >> a[i][j];
            if(a[i][j]>=48 && a[i][j]<=52)
            {
                kockice[i][j]=1;
            }
            else if(a[i][j]=='#')
            {
                
                igracke[i][j]=0;
            }
        }
    }
    postaviTopove(0,0);
    if(qw) return 0;
    cout << -1;
}