Problem:
これは 20XX 年の話である．再生発電網による安定したエネルギー供給，および液化合成燃料の発明によって航空旅客数は鰻登りに増加した．しかし，航空機によるテロリズムの脅威は依然として存在するため，高速でかつ高い信頼性をもつ自動手荷物検査システムの重要性が高まっている．検査官が全部の荷物を調べることは実際問題として困難であることから，自動検査において疑わしいと判断された手荷物だけを検査官で改めて調べるという仕組みを整えたいわけである．  航空機業界からの要請を受け，国際客室保護会社（International Cabin Protection Company）では，新たな自動検査システムを開発するため，最近の旅客の手荷物について調査した．調査の結果，最近の旅客の手荷物には次のような傾向があることが判明した．    * 手荷物は 1 辺だけが短い直方体のような形状をしている．   * 一般の乗客が手荷物に詰めて航空機に持ち込む品物としてはノートパソコン，音楽プレイヤー，携帯ゲーム機，トランプなどがあり，これらはいずれも長方形である．   * 個々の品物は，その長方形の辺が手荷物の辺と平行になるように詰めこまれる．   * 一方，テロリズムに用いられるような武器は，長方形とは非常に異なる形状をもつ．  上記の調査結果をふまえて，以下のような手荷物検査のためのモデルを考案した．それぞれの手荷物は X 線に対して透明である直方体の容器だとみなす．その中には X 線に対して不透明である複数の品物が入っている．ここで，直方体の 3 辺を x 軸，y 軸，z 軸とする座標系を考え，x 軸と平行な方向に X 線を照射して，y-z 平面に投影された画像を撮影する．撮影された画像は適当な大きさの格子に分割され，画像解析によって，それぞれの格子領域に映っている品物の材質が推定される．この会社には非常に高度の解析技術があり，材質の詳細な違いすらも解析することが可能であることから，品物の材質は互いに異なると考えることができる．なお，複数の品物が x 軸方向に関して重なっているときは，それぞれの格子領域について最も手前にある，すなわち x 座標が最小である品物の材質が得られる．また，2 つ以上の品物の x 座標が等しいことはないと仮定する．  あなたの仕事は，画像解析の結果が与えられたときに，長方形ではない（武器であるかもしれない）品物が入っていることが断言できるか，あるいはその手荷物には長方形の品物以外のものは入っていないと推測されるかを判定するプログラムを作成することである．

Incorrect submission (verdict: Wrong Answer):
def is_safe(image, p):
    count = 0
    for k, v in p.items():
        rect = True
        for y in range(v[1], v[3] + 1, 1):
            for x in range(v[0], v[2] + 1, 1):
                m = image[y][x]
                if m == '.':
                    return False
                if k != m:
                    rect = False
        if rect:
            count += 1
    return count > 0
n = int(input())
for i in range(n):
    h, w = map(int, input().split(' '))
    image = [input() for y in range(h)]
    p = {}
    for y in range(h):
        for x in range(w):
            m = image[y][x]
            if m == '.':
                continue
            if m not in p:
                p[m] = [x, y, x, y]
            else:
                p[m][0] = min(p[m][0], x)
                p[m][1] = min(p[m][1], y)
                p[m][2] = max(p[m][2], x)
                p[m][3] = max(p[m][3], y)
    print('SAFE' if is_safe(image, p) else 'SUSPICIOUS')

Fixed, accepted submission:
def can_fill(image, k, v):
    for y in range(v[1], v[3] + 1):
        for x in range(v[0], v[2] + 1):
            m = image[y][x]
            if m != k and m != '*':
                return False
    return True

def is_safe(image, p):
    keys = list(p.keys())
    i = 0
    while i < len(keys):
        k = keys[i]
        v = p[k]
        if can_fill(image, k, v):
            for y in range(v[1], v[3] + 1):
                for x in range(v[0], v[2] + 1):
                    image[y][x] = '*'
            keys.remove(k)
            i = 0
        else:
            i += 1
    return len(keys) == 0

n = int(input())
for i in range(n):
    h, w = map(int, input().split(' '))
    image = [list(input()) for y in range(h)]
    p = {}
    for y in range(h):
        for x in range(w):
            m = image[y][x]
            if m != '.':
                if m not in p:
                    p[m] = [x, y, x, y]
                else:
                    p[m][0] = min(p[m][0], x)
                    p[m][1] = min(p[m][1], y)
                    p[m][2] = max(p[m][2], x)
                    p[m][3] = max(p[m][3], y)
    print('SAFE' if is_safe(image, p) else 'SUSPICIOUS')