from collections import deque


# Dummy function to check that person is selling mangos
def person_is_seller(name: str) -> bool:
    # If last person letter is "m" than he is mango seller
    return name[-1] == "m"


# Implementation of BFS of example graph
def bfs():
    # Modeling graph using hash map
    graph = {}
    graph["me"] = ["alice", "bob", "claire"]
    graph["bob"] = ["anuj", "peggy"]
    graph["alice"] = ["peggy"]
    graph["claire"] = ["tom", "jonny"]
    graph["anuj"] = []
    graph["peggy"] = []
    graph["tom"] = []
    graph["jonny"] = []

    # Creating queue for checking
    search_queue = deque()

    # Declaring searched persons list for avoiding infinite loop situation
    searched = []

    # Adding first people to queue, starting from me
    search_queue += graph["me"]

    # Start searching
    while search_queue:
        # Getting first person from queue
        person = search_queue.popleft()
        # Checking that person is already searched
        if person not in searched:
            if person_is_seller(person):
                print("{name} is a mago seller!".format(name=person))
                return
            else:
                # Adding new neighbours to queue
                search_queue += graph[person]
                # Add current searched person to searched list
                searched.append(person)
    print("No mango sellers in your friends list :(")
    return False


bfs()
