code: def __step2(self):
          
          n = self.n
          for i in range(n):
              for j in range(n):
                  if (self.C[i][j] == 0) and \
                          (not self.col_covered[j]) and \
                          (not self.row_covered[i]):
                      self.marked[i][j] = 1
                      self.col_covered[j] = True
                      self.row_covered[i] = True
  
          self.__clear_covers()
          return 3
docs: Find a zero (Z) in the resulting matrix. If there is no starred
          zero in its row or column, star Z. Repeat for each element in the
          matrix. Go to Step 3.