#include <iostream>
 
using namespace std;

int main() {
	int m[30][30],vx[4]={1,0,-1,0},vy[4]={0,-1,0,1};
    int i,j,k,w,h,t,cn,v,a,b;
    char c[30][30],g[4]={'E','N','W','S'};
    while(cin >> w >> h && w>0) {
		cn=0;
		for (i=0;i<h;i++) { 
			cin >> c[i];
			for (j=0;j<w;j++) {
				m[i][j]=-9;
				for (k=0;k<4;k++) if (g[k]==c[i][j]) { m[i][j]=k+1; cn++;}
			}
		} 
		
		for (t=1;t<181;t++) {
			for (i=0;i<h;i++) for (j=0;j<w;j++) {
				if (m[i][j]>0 && m[i][j]<5) {
					for (k=0;k<4;k++) {
						v=(m[i][j]+2+k) % 4; a=i+vy[v]; b=j+vx[v];
						if (a<0 || a>=h || b<0 || b>=w) continue; 
						if (c[a][b]!='#' && m[a][b]<1) {
							 m[i][j]=v+1;
							 if (m[a][b]<-((v+2) % 4)) m[a][b]=-((v+2) % 4);
							 break;
						 } 
					}
				}
			}
			
			for (i=0;i<h;i++) for (j=0;j<w;j++) {
				if (m[i][j]>-4 && m[i][j]<1) {
					v=-m[i][j];
					if (c[i][j]=='X')  {cn--; m[i][j]=-9;} else m[i][j]=((v+2) % 4)+1;
					m[i+vy[v]][j+vx[v]]=-9;
				}
			}
		if (cn==0) break;  
		}		
		if (t<181) cout << t << endl; else cout << "NA" << endl;
	}		   
	return 0;
}