Revert "Revert "solutions to problem""

This reverts commit 25e05dda87856da2f551f7eb81c6cdd4e2ab249d.
Revert "Revert "Revert "solutions to problem"""

This reverts commit c2ea3dd6416714ee90cfb3155169ad2740f78e04.