build words' adjacency map and then BFS

conceptually easier to understand than previous solutions, arguably