编程题
### 问题描述
一天,小蓝得到了一张藏宝图,藏宝图上画着 $n\times m$ 大小的迷宫, `@` 表示宝藏的位置, `*` 表示墙壁, `.` 表示空地,小蓝每次只能向上下左右四个方向移动一步,墙壁不可通行,小蓝想知道从 $(1,1)$ 出发拿走所有的宝藏再回到 $(1,1)$ 的最小步数为多大。
### 输入格式
第一行两个正整数 $n$ 和 $m$,表示迷宫的构造。
接下来 $n$ 行每行 $m$ 个字符表示宝藏或者墙壁。
### 输出格式
输出一个正整数,表示最小的步数,保证一定可以拿走所有的宝藏。
### 输入案例
```text
3 3
...
@*@
.*.
```
### 样例输出
```text
8
```
### 说明
### 评测数据规模
对于 $100$% 的评测数据。
$1 \leq n , m \leq 100$,宝藏的数量不超过 $17$ 个。