Hard problem (20/30)

Hard problem