Added solution 23 (part 1)