#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

int W, H, N;
int a[30][30];
int d[900];
bool x[900];

int dd[4] = {3, 0, 1, 2};
int dr[4] = {0, 1, 0, -1};
int dc[4] = {-1, 0, 1, 0};

bool input() {
  cin >> W >> H;
  if (!W && !H) {
    return false;
  }
  int id = 0;
  for (int r = 0; r < H; ++r) {
    string str;
    cin >> str;
    for (int c = 0; c < W; ++c) {
      if (str[c] == '#') {
        a[r][c] = -2;
      } else if (str[c] == '.') {
        a[r][c] = 0;
      } else if (str[c] == 'X') {
        a[r][c] = -1;
      } else {
        a[r][c] = ++id;
        if (str[c] == 'W') {
          d[id] = 0;
        } else if (str[c] == 'S') {
          d[id] = 1;
        } else if (str[c] == 'E') {
          d[id] = 2;
        } else if (str[c] == 'N') {
          d[id] = 3;
        }
      }
    }
  }
  N = id;
  return true;
}

void solve() {
  if (!N) {
    cout << "0" << endl;
  }

  int t = 0;
  int u = 0;
  while (t <= 180) {
    for (int r = 0; r < H; ++r) {
      for (int c = 0; c < W; ++c) {
        if (a[r][c] <= 0) {
          continue;
        }
        int id = a[r][c];
        for (int i = 0; i < 4; ++i) {
          int nd = (d[id] + dd[i]) % 4;
          int np = a[r + dr[nd]][c + dc[nd]];
          if (!np || np == -1) {
            d[id] = nd;
            break;
          }
        }
      }
    }

    for (int i = 1; i <= N; ++i) {
      x[i] = false;
    }
    for (int i = 0; i < 4; ++i) {
      for (int r = 0; r < H; ++r) {
        for (int c = 0; c < W; ++c) {
          if (a[r][c] <= 0) {
            continue;
          }
          int id = a[r][c];
          if (d[id] != i) {
            continue;
          }
          if (x[id]) {
            continue;
          }
          x[id] = true;
          int np = a[r + dr[i]][c + dc[i]];
          if (!np) {
            a[r][c] = 0;
            a[r + dr[i]][c + dc[i]] = id;
          } else if (np == -1) {
            a[r][c] = 0;
            ++u;
          }
        }
      }
    }
    if (u == N) {
      break;
    }
    ++t;
  }
  if (t <= 180) {
    cout << t << endl;
  } else {
    cout << "NA" << endl;
  }
}

int main() {
  while (input()) {
    solve();
  }
  return 0;
}