A* for educational purposes.