Solution #54
Solution #55