#define min(a,b)((a)<(b)?(a):(b))
#define max(a,b)((a)>(b)?(a):(b))
int h,w,e[26],x1[26],y1[26],x2[26],y2[26];
char m[50][51];
issafe(c){
	int x,y;
	for(y=y1[c];y<=y2[c];y++){
		for(x=x1[c];x<=x2[c];x++){
			if(m[y][x]!='A'+c&&m[y][x]!='@')
				return 0;
		}
	}
	return 1;
}
del(c){
	int x,y;
	for(y=y1[c];y<=y2[c];y++){
		for(x=x1[c];x<=x2[c];x++){
			m[y][x]='@';
		}
	}
	e[c]=0;
}
disp(){
	int y;
	return;
	puts("");
	for(y=0;y<h;y++)
		puts(m[y]);
}
main(c){
	int x,y,n;
	scanf("%*d");
	for(;~scanf("%d%d",&h,&w);){
		memset(e,0,sizeof(e));
		n=0;
		for(y=0;y<h;y++){
			scanf("%s",m[y]);
			for(x=0;c=m[y][x];x++){
				if(c>='A'){
					c-='A';
					if(e[c]){
						x1[c]=min(x1[c],x);
						x2[c]=max(x2[c],x);
						y1[c]=min(y1[c],y);
						y2[c]=max(y2[c],y);
					}else{
						x1[c]=x2[c]=x;
						y1[c]=y2[c]=y;
						e[c]=1;
						n++;
					}
				}
			}
		}
		for(;n;){
			disp();
			for(c=0;c<26;c++){
				if(e[c]){
					if(issafe(c)){
						del(c);
						n--;
						break;
					}
				}
			}
			if(c==26){
				disp();
				puts("SUSPICIOUS");
				break;
			}
		}
		if(n==0){
			disp();
			puts("SAFE ");
		}
	}
}