Source: http://www.math.pitt.edu/~annav/0290H/row_reduction.pdf