def CreateMatrix(NumNodes, Edges):
    Matrix = [[0 for i in range(NumNodes)] for j in range(NumNodes)]

    for edge in Edges:
        A=edge[0]
        B=edge[1]
        Matrix[A][B]=1
        Matrix[B][A]=1

    return Matrix

def CountNeighbors(Matrix, Node):
    cnt = 0
    for i in range(len(Matrix[Node])):
        if Matrix[Node][i]==1:
            cnt+=1
    return cnt


def BreadthFirst(Matrix, Start):
    visited = [False] * len(Matrix)
    result = []
    queue = [Start]

    visited[Start] = True
    result.append(Start)

    while len(queue) > 0:
        current = queue.pop(0)

        for i in range(len(Matrix[current])):
            if Matrix[current][i] == 1 and visited[i] == False:
                visited[i] = True
                result.append(i)
                queue.append(i)

    return result

Edges = [[0, 1], [0, 2], [1, 3], [2, 4], [3, 5], [4, 5]]
Matrix = CreateMatrix(6, Edges)

print(CountNeighbors(Matrix, 0))
print(BreadthFirst(Matrix, 0))
print(BreadthFirst(Matrix, 3))
