Question and Answer from L4-M1
def solve():
n = int(input())
blocks = set()
for _ in range(n):
x, y = map(int, input().split())
blocks.add((x, y))
if (1, 1) in blocks or (n, n) in blocks:
return "NO"
dp = [[False] * (n + 1) for _ in range(n + 1)]
dp[1][1] = True
for i in range(1, n + 1):
for j in range(1, n + 1):
if (i, j) in blocks:
continue
if i > 1 and dp[i-1][j]:
dp[i][j] = True
if j > 1 and dp[i][j-1]:
dp[i][j] = True
return "YES" if dp[n][n] else "NO"
t = int(input())
for _ in range(t):
print(solve())