A* complete