





def 	A_       (  _lowerCAmelCase							,     _lowerCAmelCase							,     _lowerCAmelCase  )		->				bool:
 return not any(
     neighbour == 1 and colored_vertices[i] == color
     for i, neighbour in enumerate(_lowerCAmelCase  )  )



def 	A_       (  _lowerCAmelCase							,     _lowerCAmelCase							,     _lowerCAmelCase							,     _lowerCAmelCase  )		->				bool:

 # Base Case
 if index == len(_lowerCAmelCase  ):
  return True

 # Recursive Step
 for i in range(_lowerCAmelCase  ):
  if valid_coloring(graph[index]							,     _lowerCAmelCase							,     _lowerCAmelCase  ):
   # Color current vertex
   UpperCamelCase			:      Optional[Any] 			=     i
   # Validate coloring
   if util_color(_lowerCAmelCase							,     _lowerCAmelCase							,     _lowerCAmelCase							,     index + 1  ):
    return True
   # Backtrack
   UpperCamelCase			:      int 			=     -1
 return False



def 	A_       (  _lowerCAmelCase							,     _lowerCAmelCase  )		->				list[int]:
 UpperCamelCase			:      int 			=     [-1] * len(_lowerCAmelCase  )

 if util_color(_lowerCAmelCase							,     _lowerCAmelCase							,     _lowerCAmelCase							,     0  ):
  return colored_vertices

 return []







from math import loga



def 	A_       (  _lowerCAmelCase  )		->				int:
 if a < 0:
  raise ValueError("Input value must be a positive integer"  )
 elif isinstance(_lowerCAmelCase							,     _lowerCAmelCase  ):
  raise TypeError("Input value must be a 'int' type"  )
 return 0 if (a == 0) else int(loga(a & -a  )  )


if __name__ == "__main__":
    import doctest

    doctest.testmod()
