#include<bits/stdc++.h>
using namespace std;
int n,m=0,ans=0,tx[4]={1,0,-1,0},ty[4]={0,1,0,-1};
char a[510][510];
void dfs(int x,int y){
for(int i=1;i<4;i++){
int fx=x+tx[i];
int fy=y+ty[i];
if(!(fx<1||fx>n||fy>m||fy<1)&&a[fx][fy]=='0'){
a[fx][fy]='*';
dfs(fx,fy);
}
}
}
int main(){
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++){
for(int j=1;j<=m;j++){
if((i==1||i==n||j==1||j==m)&&a[i][j]=='0'){
a[i][j]='*';
dfs(i,j);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<' ';
if(a[i][j]=='0'){
ans++;
}
}cout<<endl;
}
cout<<ans;
}
/**************************************************************
Problem: 1913
User: zhengzihao
Language: C++
Result: Output Limit Exceed
****************************************************************/