#include <bits/stdc++.h>
using namespace std;
int a[30][30];
char s[30][30];
int n,m;
void loop() {
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++){
s[i][j]=a[i][j]+'0';
}
}
}
int solve(int number, int b, int k, int cnt) {
if(a[b+1][k]==number) {
a[b+1][k]=0;
cnt=solve(number,b+1,k,cnt)+1;
}
if(a[b][k+1]==number) {
a[b][k+1]=0;
cnt=solve(number,b,k+1,cnt)+1;
}
if(a[b-1][k]==number) {
a[b-1][k]=0;
cnt=solve(number,b-1,k,cnt)+1;
}
if(a[b][k-1]==number) {
a[b][k-1]=0;
cnt=solve(number,b,k-1,cnt)+1;
}
return cnt;
}
void solve2(int b, int k, char number) {
if(s[b+1][k]==number) {
s[b+1][k]='.';
solve2(b+1,k,number);
}
if(s[b][k+1]==number) {
s[b][k+1]='.';
solve2(b,k+1,number);
}
if(s[b-1][k]==number) {
s[b-1][k]='.';
solve2(b-1,k,number);
}
if(s[b][k-1]==number) {
s[b][k-1]='.';
solve2(b,k-1,number);
}
}
void swp() {
for(int i=m-1; i>=1; i--) {
for(int j=n-1; j>=0; j--) {
if(s[i][j]=='.' && s[i-1][j]!='.') {
swap(s[i-1][j], s[i][j]);
}
}
}
}
int main() {
cin >> m >> n;
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++) {
cin >> a[i][j];
}
}
loop();
vector<int> res;
pair<int,int>data[m*n];
int number,cnt,index=0;
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++) {
number=a[i][j];
if(number!=0) {
cnt=solve(number,i,j,0);
res.push_back(cnt);
data[index++]={i,j};
}
}
}
int mx=-1;
int temp;
int highest;
for(int i=0;i<index; i++) {
temp=res[i];
// mx=max(mx,temp);
if(temp>mx) {
mx=temp;
highest=i;
}
}
int b=data[highest].first;
int k=data[highest].second;
char number2=s[b][k];
solve2(b,k,number2);
swp();
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++) {
cout << s[i][j] << " ";
}
cout << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgYVszMF1bMzBdOwpjaGFyIHNbMzBdWzMwXTsKaW50IG4sbTsKCnZvaWQgbG9vcCgpIHsKICAgIGZvcihpbnQgaT0wOyBpPG07IGkrKykgewogICAgICAgIGZvcihpbnQgaj0wOyBqPG47IGorKyl7CiAgICAgICAgICAgIHNbaV1bal09YVtpXVtqXSsnMCc7CiAgICAgICAgfQogICAgfQp9CgppbnQgc29sdmUoaW50IG51bWJlciwgaW50IGIsIGludCBrLCBpbnQgY250KSB7CiAgICBpZihhW2IrMV1ba109PW51bWJlcikgewogICAgICAgIGFbYisxXVtrXT0wOwogICAgICAgIGNudD1zb2x2ZShudW1iZXIsYisxLGssY250KSsxOwogICAgfSAKICAgIGlmKGFbYl1baysxXT09bnVtYmVyKSB7CiAgICAgICAgYVtiXVtrKzFdPTA7CiAgICAgICAgY250PXNvbHZlKG51bWJlcixiLGsrMSxjbnQpKzE7CiAgICB9CiAgICAKICAgIGlmKGFbYi0xXVtrXT09bnVtYmVyKSB7CiAgICAgICAgYVtiLTFdW2tdPTA7CiAgICAgICAgY250PXNvbHZlKG51bWJlcixiLTEsayxjbnQpKzE7CiAgICB9CiAgICAKICAgIGlmKGFbYl1bay0xXT09bnVtYmVyKSB7CiAgICAgICAgYVtiXVtrLTFdPTA7CiAgICAgICAgY250PXNvbHZlKG51bWJlcixiLGstMSxjbnQpKzE7CiAgICB9CiAgICAKICAgIHJldHVybiBjbnQ7Cn0KCnZvaWQgc29sdmUyKGludCBiLCBpbnQgaywgY2hhciBudW1iZXIpIHsKICAgIGlmKHNbYisxXVtrXT09bnVtYmVyKSB7CiAgICAgICAgc1tiKzFdW2tdPScuJzsKICAgICAgICBzb2x2ZTIoYisxLGssbnVtYmVyKTsKICAgIH0gCiAgICBpZihzW2JdW2srMV09PW51bWJlcikgewogICAgICAgIHNbYl1baysxXT0nLic7CiAgICAgICAgc29sdmUyKGIsaysxLG51bWJlcik7CiAgICB9CiAgICAKICAgIGlmKHNbYi0xXVtrXT09bnVtYmVyKSB7CiAgICAgICAgc1tiLTFdW2tdPScuJzsKICAgICAgICBzb2x2ZTIoYi0xLGssbnVtYmVyKTsKICAgIH0KICAgIAogICAgaWYoc1tiXVtrLTFdPT1udW1iZXIpIHsKICAgICAgICBzW2JdW2stMV09Jy4nOwogICAgICAgIHNvbHZlMihiLGstMSxudW1iZXIpOwogICAgfQp9Cgp2b2lkIHN3cCgpIHsKICAgIGZvcihpbnQgaT1tLTE7IGk+PTE7IGktLSkgewogICAgICAgIGZvcihpbnQgaj1uLTE7IGo+PTA7IGotLSkgewogICAgICAgICAgICBpZihzW2ldW2pdPT0nLicgJiYgc1tpLTFdW2pdIT0nLicpIHsKICAgICAgICAgICAgICAgIHN3YXAoc1tpLTFdW2pdLCBzW2ldW2pdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBjaW4gPj4gbSA+PiBuOwoKICAgIGZvcihpbnQgaT0wOyBpPG07IGkrKykgewogICAgICAgIGZvcihpbnQgaj0wOyBqPG47IGorKykgewogICAgICAgICAgICBjaW4gPj4gYVtpXVtqXTsKICAgICAgICB9CiAgICB9CgogICAgbG9vcCgpOwogICAgdmVjdG9yPGludD4gcmVzOwogICAgcGFpcjxpbnQsaW50PmRhdGFbbSpuXTsKICAgIGludCBudW1iZXIsY250LGluZGV4PTA7CiAgICBmb3IoaW50IGk9MDsgaTxtOyBpKyspIHsKICAgICAgICBmb3IoaW50IGo9MDsgajxuOyBqKyspIHsKICAgICAgICAgICAgbnVtYmVyPWFbaV1bal07CiAgICAgICAgICAgIGlmKG51bWJlciE9MCkgewogICAgICAgICAgICAgICAgY250PXNvbHZlKG51bWJlcixpLGosMCk7CiAgICAgICAgICAgICAgICByZXMucHVzaF9iYWNrKGNudCk7CiAgICAgICAgICAgICAgICBkYXRhW2luZGV4KytdPXtpLGp9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGludCBteD0tMTsKICAgIGludCB0ZW1wOwogICAgaW50IGhpZ2hlc3Q7CiAgICBmb3IoaW50IGk9MDtpPGluZGV4OyBpKyspIHsKICAgICAgICB0ZW1wPXJlc1tpXTsKICAgICAgICAvLyBteD1tYXgobXgsdGVtcCk7CiAgICAgICAgaWYodGVtcD5teCkgewogICAgICAgICAgICBteD10ZW1wOwogICAgICAgICAgICBoaWdoZXN0PWk7CiAgICAgICAgfQogICAgfQogICAgaW50IGI9ZGF0YVtoaWdoZXN0XS5maXJzdDsKICAgIGludCBrPWRhdGFbaGlnaGVzdF0uc2Vjb25kOwogICAgY2hhciBudW1iZXIyPXNbYl1ba107CgogICAgc29sdmUyKGIsayxudW1iZXIyKTsKCiAgICBzd3AoKTsKCiAgICBmb3IoaW50IGk9MDsgaTxtOyBpKyspIHsKICAgICAgICBmb3IoaW50IGo9MDsgajxuOyBqKyspIHsKICAgICAgICAgICAgY291dCA8PCBzW2ldW2pdIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQp9