The choice of variable name 'm' seems unfortunate. 'first*' does not accept a matrix argument, it accepts a row argument, and the row is given as either 'empty?' or 'cons number row'. Then you shouldn't follow the matrix template to understand 'first*'.