Solution for 80/100 points