Solution
5 implementations