My solution
My final solution