Your code, as simple as it may be, worked as one of the best, except for one fatal flaw. Often times, when I would do different variations of items and columns, which would return maybe 1 or 0 as the final column's amount of items, it would throw a wrench into the entire assembly. Another instance was when I would try things such as
FamousLongAgo did, such as doing erroristic combinations of like 99 rows of 2 items, or 0 rows of 99 items. Not saying I need these precautions, but you never know where being safe may help in appliance.
“A script is what you give the actors. A program is what you give the audience.” ~
Larry Wall