

"""simple docstring"""




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_sentencepiece_available, is_torch_available


__A	:       List[str]        =						{
    'configuration_xlm_prophetnet': ['XLM_PROPHETNET_PRETRAINED_CONFIG_ARCHIVE_MAP', 'XLMProphetNetConfig'],
}

try:
	if not is_sentencepiece_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__A	:       int        =						['XLMProphetNetTokenizer']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__A	:       List[Any]        =						[
	    'XLM_PROPHETNET_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'XLMProphetNetDecoder',
	    'XLMProphetNetEncoder',
	    'XLMProphetNetForCausalLM',
	    'XLMProphetNetForConditionalGeneration',
	    'XLMProphetNetModel',
	    'XLMProphetNetPreTrainedModel',
	]


if TYPE_CHECKING:
	from .configuration_xlm_prophetnet import XLM_PROPHETNET_PRETRAINED_CONFIG_ARCHIVE_MAP, XLMProphetNetConfig

	try:
		if not is_sentencepiece_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_xlm_prophetnet import XLMProphetNetTokenizer

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_xlm_prophetnet import (
		    XLM_PROPHETNET_PRETRAINED_MODEL_ARCHIVE_LIST,
		    XLMProphetNetDecoder,
		    XLMProphetNetEncoder,
		    XLMProphetNetForCausalLM,
		    XLMProphetNetForConditionalGeneration,
		    XLMProphetNetModel,
		    XLMProphetNetPreTrainedModel,
		)

else:
	import sys

	__A	:       List[str]        =						_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)









'''simple docstring'''







import itertools







def _UpperCamelCase			(	__A = 1000000       )				->						int:


      '''simple docstring'''



      UpperCamelCase__      =							[1]

      for i in itertools.count(len(__A       )       ):
            UpperCamelCase__      =							0
            for j in itertools.count(1       ):
                  UpperCamelCase__      =							-1 if j % 2 == 0 else +1
                  UpperCamelCase__      =							(j * j * 3 - j) // 2
                  if index > i:
                        break
                  item += partitions[i - index] * sign
                  item %= number
                  index += j
                  if index > i:
                        break
                  item += partitions[i - index] * sign
                  item %= number

            if item == 0:
                  return i
            partitions.append(__A       )

      return 0


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  print(F"""{solution() = }""")





