//Collecting the dream I threw away
//Road to VOI
#include<bits/stdc++.h>
#define el '\n'
#define ll long long
#define ull unsigned long long
#define fumo ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define pb push_back
#define str string
#define sz(v) (int)v.size()
#define ldb long double
#define db double
#define reimu(v) v.begin(), v.end()
#define ret return
#define fi first
#define se second
#define int long long
using namespace std;
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
//ᗜˬᗜ
const int N=2e2+7,base=37,block=280;
const ll mod=1e9+7,inf=1e18;
int n,m;
char S[N][N],tmp[N][N];
void sol()
{
cin>>n>>m;
for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) cin>>S[i][j];
for(int j=1;j<=m;++j) S[0][j]='0';
for(int i=0;i<=n;++i) for(int j=1;j<=m;++j) tmp[i][j]=S[i][j];
for(int i=1;i<=n;++i)
{
int last=m+1;
for(int j=1;j<=m;++j) if(tmp[i][j]!='.' && tmp[i][j]!=tmp[i-1][j])
{
last=j;
break;
}
bool smaller=1;
if(last<=m) if(tmp[i-1][last]>tmp[i][last]) smaller=0;
//cout<<last<<el;
if(last<=m && !smaller) for(int j=last-1;j>=1;--j) if(tmp[i][j]=='.')
{
if(tmp[i-1][j]=='1') continue;
tmp[i][j]='1';
last=j;
break;
}
for(int j=last-1;j>=1;--j) if(tmp[i][j]=='.') tmp[i][j]=tmp[i-1][j];
for(int j=last+1;j<=m;++j) if(tmp[i][j]=='.') tmp[i][j]='0';
//cout<<last<<el;
//for(int j=1;j<=m;++j) cout<<tmp[i][j];cout<<el;
for(int j=1;j<=m;++j) if(tmp[i-1][j]!=tmp[i][j])
{
if(tmp[i-1][j]>tmp[i][j])
{
cout<<-1;
ret;
}
break;
}
}
for(int j=1;j<=m;++j) cout<<tmp[n][j];cout<<el;
}
void ffopen(const str &alice)
{
if(fopen((alice+".inp").c_str(), "r")){
freopen((alice+".inp").c_str(), "r", stdin);
freopen((alice+".out").c_str(), "w", stdout);
}
}
signed main()
{
fumo
ffopen("");
int t=1;
//cin>>t;
while(t--) sol();
ret 0;
}
Ly9Db2xsZWN0aW5nIHRoZSBkcmVhbSBJIHRocmV3IGF3YXkKLy9Sb2FkIHRvIFZPSQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGVsICdcbicKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgZnVtbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgc3RyIHN0cmluZwojZGVmaW5lIHN6KHYpIChpbnQpdi5zaXplKCkKI2RlZmluZSBsZGIgbG9uZyBkb3VibGUKI2RlZmluZSBkYiBkb3VibGUKI2RlZmluZSByZWltdSh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSByZXQgcmV0dXJuCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNwcmFnbWEgR0NDIG9wdGltaXplICgiT2Zhc3QiKQojcHJhZ21hIEdDQyBvcHRpbWl6ZSAoInVucm9sbC1sb29wcyIpCiNwcmFnbWEgR0NDIHRhcmdldCgiYXZ4MixibWksYm1pMixsemNudCxwb3BjbnQiKQovL+GXnMus4ZecCmNvbnN0IGludCBOPTJlMis3LGJhc2U9MzcsYmxvY2s9MjgwOwpjb25zdCBsbCBtb2Q9MWU5KzcsaW5mPTFlMTg7CmludCBuLG07CmNoYXIgU1tOXVtOXSx0bXBbTl1bTl07Cgp2b2lkIHNvbCgpCnsKICAgIGNpbj4+bj4+bTsKICAgIGZvcihpbnQgaT0xO2k8PW47KytpKSBmb3IoaW50IGo9MTtqPD1tOysraikgY2luPj5TW2ldW2pdOwogICAgZm9yKGludCBqPTE7ajw9bTsrK2opIFNbMF1bal09JzAnOwogICAgZm9yKGludCBpPTA7aTw9bjsrK2kpIGZvcihpbnQgaj0xO2o8PW07KytqKSB0bXBbaV1bal09U1tpXVtqXTsKICAgIGZvcihpbnQgaT0xO2k8PW47KytpKQogICAgewogICAgICAgIGludCBsYXN0PW0rMTsKICAgICAgICBmb3IoaW50IGo9MTtqPD1tOysraikgaWYodG1wW2ldW2pdIT0nLicgJiYgdG1wW2ldW2pdIT10bXBbaS0xXVtqXSkKICAgICAgICB7CiAgICAgICAgICAgIGxhc3Q9ajsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGJvb2wgc21hbGxlcj0xOwogICAgICAgIGlmKGxhc3Q8PW0pIGlmKHRtcFtpLTFdW2xhc3RdPnRtcFtpXVtsYXN0XSkgc21hbGxlcj0wOwogICAgICAgIC8vY291dDw8bGFzdDw8ZWw7CiAgICAgICAgaWYobGFzdDw9bSAmJiAhc21hbGxlcikgZm9yKGludCBqPWxhc3QtMTtqPj0xOy0taikgaWYodG1wW2ldW2pdPT0nLicpCiAgICAgICAgewogICAgICAgICAgICBpZih0bXBbaS0xXVtqXT09JzEnKSBjb250aW51ZTsKICAgICAgICAgICAgdG1wW2ldW2pdPScxJzsKICAgICAgICAgICAgbGFzdD1qOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBqPWxhc3QtMTtqPj0xOy0taikgaWYodG1wW2ldW2pdPT0nLicpIHRtcFtpXVtqXT10bXBbaS0xXVtqXTsKICAgICAgICBmb3IoaW50IGo9bGFzdCsxO2o8PW07KytqKSBpZih0bXBbaV1bal09PScuJykgdG1wW2ldW2pdPScwJzsKICAgICAgICAvL2NvdXQ8PGxhc3Q8PGVsOwogICAgICAgIC8vZm9yKGludCBqPTE7ajw9bTsrK2opIGNvdXQ8PHRtcFtpXVtqXTtjb3V0PDxlbDsKICAgICAgICBmb3IoaW50IGo9MTtqPD1tOysraikgaWYodG1wW2ktMV1bal0hPXRtcFtpXVtqXSkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHRtcFtpLTFdW2pdPnRtcFtpXVtqXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dDw8LTE7CiAgICAgICAgICAgICAgICByZXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBqPTE7ajw9bTsrK2opIGNvdXQ8PHRtcFtuXVtqXTtjb3V0PDxlbDsKfQoKdm9pZCBmZm9wZW4oY29uc3Qgc3RyICZhbGljZSkKewogICAgaWYoZm9wZW4oKGFsaWNlKyIuaW5wIikuY19zdHIoKSwgInIiKSl7CiAgICAgICAgZnJlb3BlbigoYWxpY2UrIi5pbnAiKS5jX3N0cigpLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKChhbGljZSsiLm91dCIpLmNfc3RyKCksICJ3Iiwgc3Rkb3V0KTsKICAgIH0KfQoKc2lnbmVkIG1haW4oKQp7CiAgICBmdW1vCiAgICBmZm9wZW4oIiIpOwogICAgaW50IHQ9MTsKICAgIC8vY2luPj50OwogICAgd2hpbGUodC0tKSBzb2woKTsKICAgIHJldCAwOwp9Cg==