code: def ToReducedRowEchelonForm(M):
      if not M:
          return
      lead = 0
      rowCount = len(M)
      columnCount = len(M[0])
      for r in range(rowCount):
          if lead >= columnCount:
              return
          i = r
          while M[i][lead] == 0:
              i += 1
              if i == rowCount:
                  i = r
                  lead += 1
                  if columnCount == lead:
                      return
          M[i], M[r] = M[r], M[i]
          lv = M[r][lead]
          M[r] = [mrx / lv for mrx in M[r]]
          for i in range(rowCount):
              if i != r:
                  lv = M[i][lead]
                  M[i] = [iv - lv * rv for rv, iv in zip(M[r], M[i])]
          lead += 1
  
label_desc: Use image node_id 1 for calling a global function with example usage: ToReducedRowEchelonForm(M) without return types