Problem 18
340 following