


"""simple docstring"""


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tensorflow_text_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


a_       							=    {
    "configuration_bert": ["BERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "BertConfig", "BertOnnxConfig"],
    "tokenization_bert": ["BasicTokenizer", "BertTokenizer", "WordpieceTokenizer"],
}

try:
		if not is_tokenizers_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_       							=    ["BertTokenizerFast"]

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_       							=    [
		    "BERT_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "BertForMaskedLM",
		    "BertForMultipleChoice",
		    "BertForNextSentencePrediction",
		    "BertForPreTraining",
		    "BertForQuestionAnswering",
		    "BertForSequenceClassification",
		    "BertForTokenClassification",
		    "BertLayer",
		    "BertLMHeadModel",
		    "BertModel",
		    "BertPreTrainedModel",
		    "load_tf_weights_in_bert",
		]

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_       							=    [
		    "TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "TFBertEmbeddings",
		    "TFBertForMaskedLM",
		    "TFBertForMultipleChoice",
		    "TFBertForNextSentencePrediction",
		    "TFBertForPreTraining",
		    "TFBertForQuestionAnswering",
		    "TFBertForSequenceClassification",
		    "TFBertForTokenClassification",
		    "TFBertLMHeadModel",
		    "TFBertMainLayer",
		    "TFBertModel",
		    "TFBertPreTrainedModel",
		]
try:
		if not is_tensorflow_text_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_       							=    ["TFBertTokenizer"]

try:
		if not is_flax_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_       							=    [
		    "FlaxBertForCausalLM",
		    "FlaxBertForMaskedLM",
		    "FlaxBertForMultipleChoice",
		    "FlaxBertForNextSentencePrediction",
		    "FlaxBertForPreTraining",
		    "FlaxBertForQuestionAnswering",
		    "FlaxBertForSequenceClassification",
		    "FlaxBertForTokenClassification",
		    "FlaxBertModel",
		    "FlaxBertPreTrainedModel",
		]

if TYPE_CHECKING:
		from .configuration_bert import BERT_PRETRAINED_CONFIG_ARCHIVE_MAP, BertConfig, BertOnnxConfig
		from .tokenization_bert import BasicTokenizer, BertTokenizer, WordpieceTokenizer

		try:
				if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .tokenization_bert_fast import BertTokenizerFast

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_bert import (
				    BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    BertForMaskedLM,
				    BertForMultipleChoice,
				    BertForNextSentencePrediction,
				    BertForPreTraining,
				    BertForQuestionAnswering,
				    BertForSequenceClassification,
				    BertForTokenClassification,
				    BertLayer,
				    BertLMHeadModel,
				    BertModel,
				    BertPreTrainedModel,
				    load_tf_weights_in_bert,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_bert import (
				    TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFBertEmbeddings,
				    TFBertForMaskedLM,
				    TFBertForMultipleChoice,
				    TFBertForNextSentencePrediction,
				    TFBertForPreTraining,
				    TFBertForQuestionAnswering,
				    TFBertForSequenceClassification,
				    TFBertForTokenClassification,
				    TFBertLMHeadModel,
				    TFBertMainLayer,
				    TFBertModel,
				    TFBertPreTrainedModel,
				)

		try:
				if not is_tensorflow_text_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .tokenization_bert_tf import TFBertTokenizer

		try:
				if not is_flax_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_flax_bert import (
				    FlaxBertForCausalLM,
				    FlaxBertForMaskedLM,
				    FlaxBertForMultipleChoice,
				    FlaxBertForNextSentencePrediction,
				    FlaxBertForPreTraining,
				    FlaxBertForQuestionAnswering,
				    FlaxBertForSequenceClassification,
				    FlaxBertForTokenClassification,
				    FlaxBertModel,
				    FlaxBertPreTrainedModel,
				)

else:
		import sys

		a_       							=    _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)



"""simple docstring"""


def      a__ (				__lowercase     ,			__lowercase     ,			__lowercase     ,			__lowercase   )	->	str:
				# Return True if there is node that has not iterated.
				_A					  =			[False] * len(__lowercase   )
				_A					  =			[]
				queue.append(__lowercase   )
				_A					  =			True

				while queue:
								_A					  =			queue.pop(0   )
								for ind in range(len(graph[u]   )   ):
												if visited[ind] is False and graph[u][ind] > 0:
																queue.append(__lowercase   )
																_A					  =			True
																_A					  =			u

				return visited[t]






def      a__ (				__lowercase     ,			__lowercase     ,			__lowercase   )	->	int:
				# This array is filled by BFS and to store path
				_A					  =			[-1] * (len(__lowercase   ))
				_A					  =			0
				while bfs(__lowercase     ,			__lowercase     ,			__lowercase     ,			__lowercase   ):
								_A					  =			float("Inf"   )
								_A					  =			sink

								while s != source:
												# Find the minimum value in select path
												_A					  =			min(__lowercase     ,			graph[parent[s]][s]   )
												_A					  =			parent[s]

								max_flow += path_flow
								_A					  =			sink

								while v != source:
												_A					  =			parent[v]
												graph[u][v] -= path_flow
												graph[v][u] += path_flow
												_A					  =			parent[v]
				return max_flow


a_       							=    [
    [0, 16, 13, 0, 0, 0],
    [0, 0, 10, 12, 0, 0],
    [0, 4, 0, 0, 14, 0],
    [0, 0, 9, 0, 0, 20],
    [0, 0, 0, 7, 0, 4],
    [0, 0, 0, 0, 0, 0],
]

a_							,     a_       							=    0, 5




print(ford_fulkerson(graph, source, sink))