#include <bits/stdc++.h>
using namespace std;
int m, n, sx, sy, ans, flag;
char mp[40][40];
int vis[40][40];
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, 1, 0, -1};
void dfs(int x, int y) {
if (mp[x][y] == '*') {
ans++;
flag = 1;
return;
}
for (int i = 0; i < 4; i++) {
int xx = x + dx[i];
int yy = y + dy[i];
if (xx >= 0 && xx < n && yy >= 0 && yy < m) {
if (mp[xx][yy] != '#' && vis[xx][yy] == 0) {
vis[xx][yy] = 1;
dfs(xx, yy);
vis[xx][yy] = 0;
}
}
}
}
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> mp[i][j];
if (mp[i][j] == '@') {
sx = i;
sy = j;
}
}
}
vis[sx][sy] = 1;
dfs(sx, sy);
if (flag) {
cout << ans;
}
else{
cout<<-1;
}
return 0;
}