1st half of solutions

2nd half of solutions