code: def __find_a_zero(self):
          
          row = -1
          col = -1
          i = 0
          n = self.n
          done = False
  
          while not done:
              j = 0
              while True:
                  if (self.C[i][j] == 0) and \
                          (not self.row_covered[i]) and \
                          (not self.col_covered[j]):
                      row = i
                      col = j
                      done = True
                  j += 1
                  if j >= n:
                      break
              i += 1
              if i >= n:
                  done = True
  
          return (row, col)
docs: Find the first uncovered element with value 0