



'''simple docstring'''



from typing import TYPE_CHECKING

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


_lowercase       :						str						={
    "configuration_openai": ["OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP", "OpenAIGPTConfig"],
    "tokenization_openai": ["OpenAIGPTTokenizer"],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase       :						List[Any]						=["OpenAIGPTTokenizerFast"]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase       :						Union[str, Any]						=[
				    "OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "OpenAIGPTDoubleHeadsModel",
				    "OpenAIGPTForSequenceClassification",
				    "OpenAIGPTLMHeadModel",
				    "OpenAIGPTModel",
				    "OpenAIGPTPreTrainedModel",
				    "load_tf_weights_in_openai_gpt",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase       :						Optional[Any]						=[
				    "TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "TFOpenAIGPTDoubleHeadsModel",
				    "TFOpenAIGPTForSequenceClassification",
				    "TFOpenAIGPTLMHeadModel",
				    "TFOpenAIGPTMainLayer",
				    "TFOpenAIGPTModel",
				    "TFOpenAIGPTPreTrainedModel",
				]


if TYPE_CHECKING:
				from .configuration_openai import OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP, OpenAIGPTConfig
				from .tokenization_openai import OpenAIGPTTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_openai_fast import OpenAIGPTTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_openai import (
								    OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    OpenAIGPTDoubleHeadsModel,
								    OpenAIGPTForSequenceClassification,
								    OpenAIGPTLMHeadModel,
								    OpenAIGPTModel,
								    OpenAIGPTPreTrainedModel,
								    load_tf_weights_in_openai_gpt,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_openai import (
								    TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFOpenAIGPTDoubleHeadsModel,
								    TFOpenAIGPTForSequenceClassification,
								    TFOpenAIGPTLMHeadModel,
								    TFOpenAIGPTMainLayer,
								    TFOpenAIGPTModel,
								    TFOpenAIGPTPreTrainedModel,
								)

else:
				import sys

				_lowercase       :						Dict						=_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)









"""simple docstring"""






def 	snake_case__  (						__lowerCamelCase							:       int = 998001      ):
			"""simple docstring"""

			# fetches the next number
			for number in range(n - 1				,						9999				,						-1      ):
						lowerCamelCase__						:						Optional[int]						      =str(__lowerCamelCase      )

						# checks whether 'str_number' is a palindrome.
						if str_number == str_number[::-1]:
									lowerCamelCase__						:						Optional[int]						      =999

									# if 'number' is a product of two 3-digit numbers
									# then number is the answer otherwise fetch next number.
									while divisor != 99:
												if (number % divisor == 0) and (len(str(number // divisor      )      ) == 3.0):
															return number
												divisor -= 1
			raise ValueError('''That number is larger than our acceptable range.'''      )


if __name__ == "__main__":
		print(f'{solution() = }')




