Python NZEC on KFORK but AC using C++

I was trying to solve the KFORK problem. I have a solution in C++ that I got AC with, but my identical Python3 solution gets an NZEC. I’m new to using Python on CodeChef, so maybe there is something basic I am missing. Can someone please take a look at the following code and see if something is wrong?


def is_X_Y_valid(board, X, Y):
    return (X >= 0 and X < len(board) and
            Y >= 0 and Y < len(board[X]))


T = int(input())

for _ in range(0, T):
    N, M = (int(i) for i in input().split())

    board = [[False] * N for x in range(N)]
    xAttacked = [False] * N
    yAttacked = [False] * N
    mainDiagAttacked = [False] * (2 * N - 1)
    offDiagAttacked = [False] * (2 * N - 1)

    for _ in range(0, M):
        X, Y = (int(i) for i in input().split())
        X -= 1
        Y -= 1
        board[X][Y] = True
        xAttacked[X] = True
        yAttacked[Y] = True
        mainDiagAttacked[N - 1 + X - Y] = True
        offDiagAttacked[X + Y] = True

    forkedKnights = 0
    for x in range(0, N):
        for y in range(0, N):
            if board[x][y]:
                continue

            if (xAttacked[x] or yAttacked[y] or
                    mainDiagAttacked[N - 1 + x - y] or
                    offDiagAttacked[x + y]):
                continue

            attacking = 0
            offsets = [[[-2, 2], [-1, 1]], [[-1, 1], [-2, 2]]]
            for a, b in offsets:
                for i in a:
                    for j in b:
                        if is_X_Y_valid(board, x + i, y + j):
                            if board[x + i][y + j]:
                                attacking += 1

            if attacking >= 2:
                forkedKnights += 1

    print(forkedKnights)

test1 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters

test2 Post must be at least 20 characters