Hard problem (30/30)

Hard problem