Shortest Path With Keys And Doors