#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<string>

using namespace std;

int INF=1000000000;
int x,y;
int sx,sy;
int gx,gy;
string str[1001];
int cnt[5];
int cx[5][1001],cy[5][1001];
int dp[5][5][1001];
int res,resn;

int main(void){
	while(1){
		scanf("%d%d",&x,&y);
		if(x==0 && y==0)break;
		//初期化
		res=INF;
		for(int i=0;i<5;i++){
			cnt[i]=0;
			for(int j=0;j<5;j++){
				for(int k=0;k<=1000;k++){
					dp[i][j][k]=INF;
				}
			}
		}
		for(int i=0;i<y;i++){
			cin >> str[i];
			for(int j=0;j<x;j++){
				if(str[i][j]>='1' && str[i][j]<='5'){
					int ic=str[i][j]-'0'-1;
					cx[ic][cnt[ic]]=j;
					cy[ic][cnt[ic]]=i;
					cnt[ic]++;
				}
				if(str[i][j]=='S')sx=j,sy=i;
				if(str[i][j]=='G')gx=j,gy=i;
			}
		}
		for(int i=0;i<5;i++){
			for(int j=0;j<cnt[(i+1)%5];j++){
				dp[i][(i+1)%5][j]=abs(cx[(i+1)%5][j]-sx)+abs(cy[(i+1)%5][j]-sy);
			}
			for(int j=2;j<5;j++){
				for(int k=0;k<cnt[(j+i)%5];k++){
					for(int l=0;l<cnt[(j+i+4)%5];l++){
						int np=dp[i][(j+i+4)%5][l]+abs(cx[(j+i)%5][k]-cx[(j+i+4)%5][l])+abs(cy[(j+i)%5][k]-cy[(j+i+4)%5][l]);
						dp[i][(j+i)%5][k]=min(dp[i][(j+i)%5][k],np);
					}
				}
			}
			int re=res;
			for(int j=0;j<cnt[(i+4)%5];j++){
				int gp=dp[i][(i+4)%5][j]+abs(cx[(i+4)%5][j]-gx)+abs(cy[(i+4)%5][j]-gy);
				res=min(res,gp);
			}
			if(re!=res)resn=i+1;;
		}
		if(res>=INF)printf("NA\n");
		else printf("%d %d\n",resn,res);
	}
	return 0;
}