t = int(input())
for _ in range(t):
n, m = map(int, input().split())
grid = [input() for _ in range(n)]
possible = False
# Check horizontal pairs
for i in range(n):
for j in range(m - 1):
if grid[i][j] == grid[i][j + 1]:
possible = True
break
if possible:
break
# Check vertical pairs
if not possible:
for j in range(m):
for i in range(n - 1):
if grid[i][j] == grid[i + 1][j]:
possible = True
break
if possible:
break
if possible:
print("YES")
else:
print("NO")
dCA9IGludChpbnB1dCgpKQoKZm9yIF8gaW4gcmFuZ2UodCk6CiAgICBuLCBtID0gbWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKQogICAgZ3JpZCA9IFtpbnB1dCgpIGZvciBfIGluIHJhbmdlKG4pXQoKICAgIHBvc3NpYmxlID0gRmFsc2UKCiAgICAjIENoZWNrIGhvcml6b250YWwgcGFpcnMKICAgIGZvciBpIGluIHJhbmdlKG4pOgogICAgICAgIGZvciBqIGluIHJhbmdlKG0gLSAxKToKICAgICAgICAgICAgaWYgZ3JpZFtpXVtqXSA9PSBncmlkW2ldW2ogKyAxXToKICAgICAgICAgICAgICAgIHBvc3NpYmxlID0gVHJ1ZQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICBpZiBwb3NzaWJsZToKICAgICAgICAgICAgYnJlYWsKCiAgICAjIENoZWNrIHZlcnRpY2FsIHBhaXJzCiAgICBpZiBub3QgcG9zc2libGU6CiAgICAgICAgZm9yIGogaW4gcmFuZ2UobSk6CiAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKG4gLSAxKToKICAgICAgICAgICAgICAgIGlmIGdyaWRbaV1bal0gPT0gZ3JpZFtpICsgMV1bal06CiAgICAgICAgICAgICAgICAgICAgcG9zc2libGUgPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgaWYgcG9zc2libGU6CiAgICAgICAgICAgICAgICBicmVhawoKICAgIGlmIHBvc3NpYmxlOgogICAgICAgIHByaW50KCJZRVMiKQogICAgZWxzZToKICAgICAgICBwcmludCgiTk8iKQo=
OAoyIDEKVwpCCjYgNgpXV1dXQlcKV0JXV1dXCkJCQldXVwpCV1dXQkIKV1dCV0JCCkJCQldCVwoxIDEKVwoyIDIKQkIKQkIKMyA0CkJXQlcKV0JXQgpCV0JXCjQgMgpCQgpCQgpXVwpXVwo0IDQKV1dCVwpCQldCCldXQkIKQkJCQgoxIDUKV0JCV0IK
8
2 1
W
B
6 6
WWWWBW
WBWWWW
BBBWWW
BWWWBB
WWBWBB
BBBWBW
1 1
W
2 2
BB
BB
3 4
BWBW
WBWB
BWBW
4 2
BB
BB
WW
WW
4 4
WWBW
BBWB
WWBB
BBBB
1 5
WBBWB