#include <bits/stdc++.h>
using namespace std;
void fast() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
int main() {
  fast();
  int m, n, start, startj, end, endj, cnt = 0;
  cin >> m >> n;
  char a[m][n];
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      cin >> a[i][j];
      if (a[i][j] == 'S') {
        start = i;
        startj = j;
        end = i;
        endj = j;
      }
    }
  }
  string s;
  cin >> s;
  char c[24][4] = {
      {'R', 'U', 'D', 'L'}, {'R', 'U', 'L', 'D'}, {'R', 'D', 'U', 'L'},
      {'R', 'D', 'L', 'U'}, {'R', 'L', 'U', 'D'}, {'R', 'L', 'D', 'U'},
      {'U', 'R', 'L', 'D'}, {'U', 'R', 'D', 'L'}, {'U', 'L', 'R', 'D'},
      {'U', 'L', 'D', 'R'}, {'U', 'D', 'L', 'R'}, {'U', 'D', 'R', 'L'},
      {'D', 'R', 'L', 'U'}, {'D', 'R', 'U', 'L'}, {'D', 'L', 'R', 'U'},
      {'D', 'L', 'U', 'R'}, {'D', 'U', 'L', 'R'}, {'D', 'U', 'R', 'L'},
      {'L', 'R', 'D', 'U'}, {'L', 'R', 'U', 'D'}, {'L', 'U', 'R', 'D'},
      {'L', 'U', 'D', 'R'}, {'L', 'D', 'R', 'U'}, {'L', 'D', 'U', 'R'}};
  for (int p = 0; p < 24; p++) {
    start = end;
    startj = endj;
    for (int r = 0; r < s.size(); r++) {
      if (c[p][s[r] - '0'] == 'L') {
        start--;
      } else if (c[p][s[r] - '0'] == 'R') {
        start++;
      } else if (c[p][s[r] - '0'] == 'D') {
        startj++;
      } else if (c[p][s[r] - '0'] == 'U') {
        startj--;
      }
      if (start < 0 || start >= m || startj < 0 || startj >= n ||
          a[start][startj] == '#')
        break;
      if (a[start][startj] == 'E') {
        cnt++;
        break;
      }
    }
  }
  cout << cnt << endl;
  return 0;
}
