solutions
Hard solutions