#include<iostream>
#include<algorithm>
using namespace std;
int h,w;
string s[50];
int main()
{
	cin>>h>>w;
	int sx,sy;
	bool flagx=0,flagy=0;
	for(int i=0;i<h;i++)
	{
		cin>>s[i];
		for(int j=0;j<w;j++)if(s[i][j]=='@')sx=i,sy=j;
	}
	if(sy==0)
	{
		flagy=1;
		for(int i=0;i<h;i++)reverse(s[i].begin(),s[i].end());
		sy=w-1-sy;
	}
	if(sx%4)
	{
		flagx=1;
		for(int i=0;i<h/2;i++)swap(s[i],s[h-1-i]);
		sx=h-1-sx;
	}
	for(int i=sx-1;i>=0;i--)if(s[i][sy]!='*')s[i][sy]='#';
	int nx=0,ny=sy-1,nd=0;
	while(nx<h)
	{
		if(nd==0)
		{
			while(ny>=0)
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				ny--;
			}
			ny++;
			if(nx+1<h&&s[nx+1][ny]!='*')s[nx+1][ny]='#';
			if(nx+2<h&&s[nx+2][ny]!='*')s[nx+2][ny]='#';
			ny++;
			nx+=2;
			nd=1;
		}
		else
		{
			while(ny<=(nx<=sx?sy-2:sy))
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				ny++;
			}
			ny--;
			if(nx+1<h&&s[nx+1][ny]!='*')s[nx+1][ny]='#';
			if(nx+2<h&&s[nx+2][ny]!='*')s[nx+2][ny]='#';
			nx+=2;
			nd=0;
		}
	}
	nx-=2;
	while(ny+2<w)
	{
		ny++;
		if(s[nx][ny]!='*')s[nx][ny]='#';
		ny++;
		if(nd==0)
		{
			while(nx>=0)
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				nx--;
			}
			nx++;
			nd=1;
		}
		else
		{
			while(nx<h)
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				nx++;
			}
			nx--;
			nd=0;
		}
	}
	int d[]={0,1,0,-1,0};
	while(s[nx][ny]!='*')
	{
		s[nx][ny]='.';
		for(int r=0;r<4;r++)
		{
			int tx=nx+d[r],ty=ny+d[r+1];
			if(tx>=0&&ty>=0&&tx<h&&ty<w&&s[tx][ty]!='.')
			{
				nx=tx;
				ny=ty;
				break;
			}
		}
	}
	if(flagx)
	{
		for(int i=0;i<h/2;i++)swap(s[i],s[h-1-i]);
	}
	if(flagy)
	{
		for(int i=0;i<h;i++)reverse(s[i].begin(),s[i].end());
	}
	for(int i=0;i<h;i++)cout<<s[i]<<endl;
}
