#include<bits/stdc++.h>
#define r(i,n) for(int i=0;i<n;i++)
#define fi first
#define se second
#define mk make_pair
using namespace std;
map<int,pair<int,int> >max_p,min_p;
map<char,int>mc;
int h,w,c,vis[101];
string s[51];
inline void mae(){
  r(i,h)r(j,w)
   if(s[i][j]=='.')s[i][j]='0';
   else{
    if(mc[s[i][j]])s[i][j]=mc[s[i][j]];
    else{
      mc[s[i][j]]=(c++)+'0';
      s[i][j]=(c-1)+'0';
    }
   }
}
inline void in(){
  for(int k=1;k<c;k++){
    int px=0,py=0,mx=1000,my=1000;
    r(i,h)r(j,w)
      if(s[i][j]-'0'==k){
        px=max(px,j);
        py=max(py,i);
        mx=min(mx,j);
        my=min(my,i);
      }
    max_p[k]=mk(px,py);
    min_p[k]=mk(mx,my);
  }
}
inline bool dfs(int d,int x){
  if(d){
    pair<int,int>p1=min_p[x],p2=max_p[x];
    for(int i=p1.se;i<=p2.se;i++)
      for(int j=p1.fi;j<=p2.fi;j++)
        if(!vis[s[i][j]-'0'])return 0;
  }
  if(d==c-1)return 1;
  for(int i=1;i<c;i++)
    if(!vis[i]){
      vis[i]=1;
      if(dfs(d+1,i))return 1;
      vis[i]=0;
    }
  return 0;
}
int main(){
  int n;
  cin>>n;
  while(n--){
    memset(vis,0,sizeof(vis));
    max_p.clear();
    min_p.clear();
    mc.clear();c=1;
    cin>>h>>w;
    r(i,h)cin>>s[i];
    mae();in();
    if(dfs(0,0))cout<<"SAFE"<<endl;
    else cout<<"SUSPICIOUS"<<endl;
  }
}
