#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y,step;
};
int m,n,sx,sy,ex,ey,f,r;
char a[33][33];
int dit[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
node q[10003];
void bfs(){
int ans=-1;
f=r=1,q[r].x=sx,q[r].y=sy,q[r].step=0,a[sx][sy]='#';
while(f<=r){
int fx=q[f].x,fy=q[f].y,fstep=q[f].step;
if(fx==ex&&fy==ey){
ans=fstep;
break;
}
for(int i=0;i<4;++i){
int nx=fx+dit[i][0],ny=fy+dit[i][1];
if(nx>=0&&nx<m&&ny>=0&&ny<n&&(a[nx][ny]=='.'||a[nx][ny]=='*')){
a[nx][ny]=='#',r++,q[r].x=nx,q[r].y=ny,q[r].step=fstep+1;
}
}
f++;
}
cout<<ans<<'\n';
}
int main(){
cin>>m>>n;
for(int i=0;i<m;++i)cin>>a[i];
for(int i=0;i<m;++i)for(int j=0;j<n;++j){
if(a[i][j]=='@')sx=i,sy=j;
if(a[i][j]=='*')ex=i,ey=j;
}
bfs();
}
quq
RE67pts