#include <bits/stdc++.h>
using namespace std;
int n, m;
char a[15][15];
int ok[15][15];
bool fr[15][15][65536];
vector<pair<pair<int, int>, int> > q;
vector<int> f;
const int ci[] = {0, -1, 1, 0};
const int cj[] = {-1, 0, 0, 1};
int cmax;
void init() {
  memset(fr, true, sizeof fr);
  q.clear();
  f.clear();
  pair<int, int> p[9];
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
      if (a[i][j] > '0' && a[i][j] <= '9') p[a[i][j] - '1'] = make_pair(i, j);
  int stt = 0;
  for (int i = 0; i < cmax; i++) {
    stt *= 4;
    for (int k = 0; k < 4; k++)
      if (p[i].first + ci[k] == p[i + 1].first &&
          p[i].second + cj[k] == p[i + 1].second) {
        stt += k;
        break;
      }
  }
  fr[p[0].first][p[0].second][stt] = false;
  q.push_back(make_pair(p[0], stt));
  f.push_back(0);
}
int main() {
  scanf("%d%d", &n, &m);
  cmax = 0;
  for (int i = 0; i < n; i++) {
    scanf("%s", a[i]);
    for (int j = 0; j < m; j++) {
      if (a[i][j] > '0' && a[i][j] <= '9') cmax = max(cmax, a[i][j] - '1');
      if (a[i][j] == '#')
        ok[i][j] = 1e9;
      else
        ok[i][j] = 0;
    }
  }
  init();
  int key = 0;
  while (key < q.size()) {
    pair<pair<int, int>, int> cur = q[key];
    int step = f[key];
    key++;
    int st = cur.second;
    int i0 = cur.first.first, j0 = cur.first.second;
    int in = i0, jn = j0;
    for (int i = 0; i < cmax - 1; i++) {
      int k = (st >> 2 * (cmax - i - 1)) % 4;
      in += ci[k];
      jn += cj[k];
      ok[in][jn] = key;
    }
    for (int k = 0; k < 4; k++) {
      int i = i0 + ci[k], j = j0 + cj[k];
      if ((i >= 0 && j >= 0 && i < n && j < m) && ok[i][j] < key) {
        if (a[i][j] == '@') {
          printf("%d", step + 1);
          return 0;
        }
        pair<pair<int, int>, int> ncur;
        ncur.second = (st / 4) + ((3 - k) << (2 * cmax - 2));
        ncur.first = make_pair(i, j);
        if (fr[i][j][ncur.second]) {
          q.push_back(ncur);
          f.push_back(step + 1);
          fr[i][j][ncur.second] = false;
        }
      }
    }
  }
  printf("-1");
  return 0;
}
