def find_path_BFS(Graph, n, m):
    """
    Breadth first search
    """
    if m not in Graph:
        return None
    if n == m:
        return [m]
    path = [[n]]
    searched = []
    while True:
        j = len(path)
        for i in range(j):
            node = path[i][-1]
            for neighbor in Graph[node]:
                if neighbor not in searched:
                    path.append(path[i] + [neighbor])
                    searched.append(neighbor)
                    if neighbor == m:
                        return path[-1]
        for i in range(j):
            path.pop(0)
    return path
