#include<iostream>
#define pb push_back
#include<vector>
#include<map>
#define MAX 35
using namespace std;
int h,w;
int dx[]={1,0,-1,0},dy[]={0,-1,0,1};
typedef pair<int,int> P;
/*
 1
2 0
 3
*/
int main(){
	map<char,int> mp;
	mp['E']=0;
	mp['N']=1;
	mp['W']=2;
	mp['S']=3;
	map<int,char> mp2;
	mp2[0]='E';
	mp2[1]='N';
	mp2[2]='W';
	mp2[3]='S';
	
	while(cin>>w>>h,w||h){
	char s[MAX][MAX];
	for(int i=0;i<h;i++){
		cin>>s[i];
	}
	vector<P> vp;
	int now=0;
	for(int i=0;i<h;i++)
	for(int j=0;j<w;j++)
	if(s[i][j]=='E'||s[i][j]=='N'||s[i][j]=='W'||s[i][j]=='S'){
		vp.pb(P(i,j));
	//	cout<<s[i][j]<<endl;
	}
	//cout<<"  "<<vp.size()<<endl;
	int cnt=0;
	int x,y;
	//cout<<vp.size()<<endl;
	while(cnt<=180&&now<vp.size()){
		cnt++;
		map<P,int> pi;
		map<int,int> ii;
		//for(int k=0;k<4;k++){
			for(int i=0;i<vp.size();i++){
				P n=vp[i];
				y=n.first;
				x=n.second;
				pi[P(y,x)]++;
			}
			for(int i=0;i<vp.size();i++){
				P n=vp[i];
				y=n.first;
				x=n.second;
				//if(ii[i]||pi[P(y,x)])
				//	continue;
				
				pi[P(y,x)]++;
				if(x==100)
					continue;
				int q=mp[s[y][x]];
				for(int j=0;j<4;j++){
					
					/*if((j+3+q)%4!=k)
						continue;
					*/
					int nx=dx[(j+3+q)%4]+x,ny=dy[(j+3+q)%4]+y;
				//	cout<<(j+3+q)%4<<endl;
					if(pi[P(ny,nx)])
						continue;
					
					
					
					if(nx>=0&&nx<w&&ny<h&&ny>=0){
						 if(s[ny][nx]=='#')
							continue;
						if(s[ny][nx]=='X'){
							vp[i]=P(100,100);
							now++;
							s[y][x]='.';
							break;
						}else if(s[ny][nx]=='.'){
							//ii[i]++;
							s[y][x]='.';
							s[ny][nx]=mp2[(j+3+q)%4];
							vp[i]=P(ny,nx);
							//pi[P(ny,nx)]++;
							break;
						}
						else if(s[ny][nx]!='#'){
							if((j+3+q)%4<mp2[s[ny][nx]]){
								char c=s[ny][nx];
								ii[i]++;
								s[y][x]='.';
								s[ny][nx]=mp2[(j+3+q)%4];
								int l=mp2[c];
								vp[i]=P(ny=dy[(l+2)%4]+ny,dx[(l+2)%4]+nx);
								s[ny=dy[(l+2)%4]+ny][dx[(l+2)%4]+nx]=c;
								//i--;
								break;
							}else{
								s[y][x]=mp2[(j+3+q)%4];
								break;
								
							}
						}
					}
				}
			}
		//}
		pi.clear();
		ii.clear();
		/*for(int i=0;i<h;i++){
		for(int j=0;j<w;j++)
			cout<<s[i][j];
			cout<<endl;
		}*/
	}
	if(now&&cnt<=180)
	cout<<cnt<<endl;
	else
	cout<<"NA"<<endl;
	}
	return 0;
}