def    lowerCAmelCase_ (     __A,  __A,  __A,  __A							)     ->				int:







      '''simple docstring'''


      UpperCAmelCase__		,      UpperCAmelCase__								=  len(__A							), len(grid[0]							)
      if (
          min(__A,  __A							) < 0
          or row == row_length
          or col == col_length
          or (row, col) in visit
          or grid[row][col] == 1
      ):
            return 0
      if row == row_length - 1 and col == col_length - 1:
            return 1

      visit.add((row, col)							)

      UpperCAmelCase__								=  0
      count += depth_first_search(__A,  row + 1,  __A,  __A							)
      count += depth_first_search(__A,  row - 1,  __A,  __A							)
      count += depth_first_search(__A,  __A,  col + 1,  __A							)
      count += depth_first_search(__A,  __A,  col - 1,  __A							)

      visit.remove((row, col)							)
      return count


if __name__ == "__main__":
      import doctest

      doctest.testmod()




import math




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      return math.sqrt(__A							) * math.sqrt(__A							) == num




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      UpperCAmelCase__								=  0
      UpperCAmelCase__								=  n
      while left <= right:
            UpperCAmelCase__								=  (left + right) // 2
            if mid**2 == n:
                  return True
            elif mid**2 > n:
                  UpperCAmelCase__								=  mid - 1
            else:
                  UpperCAmelCase__								=  mid + 1
      return False


if __name__ == "__main__":
      import doctest

      doctest.testmod()



