Buffering conventions
We will fill the buffer a column at a time and print it a row at a time
Whenever we are about to put a value into the buffer, we will put it at position (row, col)
After putting something into the buffer, we will increment (row, col) and flush the buffer if needed