def dfs(graph, node, visited):
    visited[node] = True
    print(node, end=" ")

    for i in range(len(graph)):
        if graph[node][i] == 1 and not visited[i]:
            dfs(graph, i, visited)

# Adjacency Matrix
graph = [
    [0, 1, 1, 0],
    [1, 0, 1, 1],
    [1, 1, 0, 0],
    [0, 1, 0, 0]
]

visited = [False] * len(graph)
dfs(graph, 0, visited)