Finally completed Problem 12, quite a tricky one, all probs 1 through 20 completed