updated MatrixSort