




'''simple docstring'''

def 						__magic_name__       (      __UpperCAmelCase      )						->   List[Any]:

					'''simple docstring'''

					return [
					    {
					        0: [1, 2],
					        1: [0, 2],
					        2: [0, 1, 3, 5],
					        3: [2, 4],
					        4: [3],
					        5: [2, 6, 8],
					        6: [5, 7],
					        7: [6, 8],
					        8: [5, 7],
					    },
					    {
					        0: [6],
					        1: [9],
					        2: [4, 5],
					        3: [4],
					        4: [2, 3],
					        5: [2],
					        6: [0, 7],
					        7: [6],
					        8: [],
					        9: [1],
					    },
					    {
					        0: [4],
					        1: [6],
					        2: [],
					        3: [5, 6, 7],
					        4: [0, 6],
					        5: [3, 8, 9],
					        6: [1, 3, 4, 7],
					        7: [3, 6, 8, 9],
					        8: [5, 7],
					        9: [5, 7],
					    },
					    {
					        0: [1, 3],
					        1: [0, 2, 4],
					        2: [1, 3, 4],
					        3: [0, 2, 4],
					        4: [1, 2, 3],
					    },
					][index]


def 						__magic_name__       (      __UpperCAmelCase      )						->   list[tuple[int, int]]:

					'''simple docstring'''

					snake_case_		     =							0
					snake_case_		     =							len(__UpperCAmelCase      )  # No of vertices in graph
					snake_case_		     =							[0] * n
					snake_case_		     =							[False] * n

					def dfs(__UpperCAmelCase, __UpperCAmelCase, __UpperCAmelCase, __UpperCAmelCase      ):
										snake_case_		     =							True
										snake_case_		     =							id_
										id_ += 1
										for to in graph[at]:
															if to == parent:
																				pass
															elif not visited[to]:
																				dfs(__UpperCAmelCase, __UpperCAmelCase, __UpperCAmelCase, id_      )
																				snake_case_		     =							min(low[at], low[to]      )
																				if id_ <= low[to]:
																									bridges.append((at, to) if at < to else (to, at)      )
															else:
																				# This edge is a back edge and cannot be a bridge
																				snake_case_		     =							min(low[at], low[to]      )

					snake_case_		     =							[]
					for i in range(__UpperCAmelCase      ):
										if not visited[i]:
															dfs(__UpperCAmelCase, -1, __UpperCAmelCase, id_      )
					return bridges


if __name__ == "__main__":
							import doctest

							doctest.testmod()







'''simple docstring'''

def 						__magic_name__       (      __UpperCAmelCase, __UpperCAmelCase      )						->   int:

					'''simple docstring'''

					return int((input_a, input_a).count(0      ) == 0      )


def 						__magic_name__       (      )						->   None:

					'''simple docstring'''

					assert and_gate(0, 0      ) == 0
					assert and_gate(0, 1      ) == 0
					assert and_gate(1, 0      ) == 0
					assert and_gate(1, 1      ) == 1


if __name__ == "__main__":
							test_and_gate()
							print(and_gate(1, 0))
							print(and_gate(0, 0))
							print(and_gate(0, 1))
							print(and_gate(1, 1))

