def split_into_quadrants(m):
    """

    Split a nxn matrix into quadrants.

    Given A, returns A11, A12, A21, and A22.

    """
    mid = m.shape[0] // 2
    return m[:mid:, :mid:], m[:mid:, mid:], m[mid:, :mid], m[mid:, mid:]