#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int,int>;
#define enld '\n'
#define rep(i,n) for(int i=0; i<(n); i++)
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("Ofast")
constexpr ll INF = 1e18;
constexpr int inf = 1e9;
constexpr ll mod = 1000000007;
constexpr ll mod2 = 998244353;
const double PI = 3.1415926535897932384626433832795028841971;
const int dx[6] = {1, 0, -1, 0,1,1};
const int dy[6] = {0, 1, 0, -1,1,-1};
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
// ---------------------------------------------------------------------------


int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int _;
    cin >> _;
    while(_--){
        int H,W;
        cin >> H >> W;
        vector<string> G(H);
        for(int i=0; i<H; i++){
            cin >> G[i];
        }
        set<char> se;
        for(int i=0; i<H; i++){
            for(int j=0; j<W; j++){
                if(isupper(G[i][j])){
                    se.insert(G[i][j]);
                }
            }
        }
        vector<set<int>> suzu(se.size());
        int now = 0;
        vector<int> vec;
        for(char c: se){
            for(int i=0; i<H; i++){
                for(int j=0; j<W; j++){
                    if(G[i][j] == c){
                        G[i][j] = now + '0';
                    }
                }
            }
            vec.push_back(now);
            now++;
        }
        bool ok = true;
        for(int k=0; k<suzu.size(); k++){
            int n=inf,e=0,w=inf,s=0;
            for(int i=0; i<H; i++){
                for(int j=0; j<W; j++){
                    if(G[i][j] == k+'0'){
                        chmax(s,i);
                        chmax(e,j);
                        chmin(n,i);
                        chmin(w,j);
                    }
                }
            }
            for(int i=n; i<=s; i++){
                for(int j=w; j<=e; j++){
                    if(G[i][j] == '.'){
                        ok = false;
                    }else if(G[i][j] != k+'0'){
                        suzu[k].insert(G[i][j] - '0');
                    }
                }
            }
        }
        // for(int i=0; i<suzu.size(); i++){
        //     for(auto x: suzu[i]){
        //         cout << x << " ";
        //     }
        //     cout << enld;
        // }
        for(int i=0; i<suzu.size(); i++){
            queue<int> que;
            for(int v: suzu[i]){
                que.push(v);
            }
            while(que.size()){
                int v = que.front();
                que.pop();
                for(int nv:suzu[v]){
                    if(suzu[i].count(nv)) continue;
                    suzu[i].insert(nv);
                    que.push(nv);
                }
            }
        }
        bool can = true;
        for(int i=0; i<suzu.size(); i++){
            if(suzu[i].count(i)){
                can = false;
                break;
            }
        }
        if(ok and can){
            cout << "SAFE" << enld;
        }else{
            cout << "SUSPICIOUS" << enld;
        }
    }
    return 0;
}




Measured memory_bytes: 3216