

from typing import TYPE_CHECKING

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


UpperCAmelCase__			:  List[Any]					     =     {
    """configuration_codegen""": ["""CODEGEN_PRETRAINED_CONFIG_ARCHIVE_MAP""", """CodeGenConfig""", """CodeGenOnnxConfig"""],
    """tokenization_codegen""": ["""CodeGenTokenizer"""],
}

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase__			:  Dict					     =     ["""CodeGenTokenizerFast"""]

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase__			:  int					     =     [
      """CODEGEN_PRETRAINED_MODEL_ARCHIVE_LIST""",
      """CodeGenForCausalLM""",
      """CodeGenModel""",
      """CodeGenPreTrainedModel""",
  ]

if TYPE_CHECKING:
  from .configuration_codegen import CODEGEN_PRETRAINED_CONFIG_ARCHIVE_MAP, CodeGenConfig, CodeGenOnnxConfig
  from .tokenization_codegen import CodeGenTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_codegen_fast import CodeGenTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_codegen import (
        CODEGEN_PRETRAINED_MODEL_ARCHIVE_LIST,
        CodeGenForCausalLM,
        CodeGenModel,
        CodeGenPreTrainedModel,
    )

else:
  import sys

  UpperCAmelCase__			:  Optional[Any]					     =     _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)







import itertools






def        __lowercase   (  _A = 1000000      )  ->    int:
      SCREAMING_SNAKE_CASE			:   Tuple	  = [1]

      for i in itertools.count(len(_A      )      ):
            SCREAMING_SNAKE_CASE			:   Optional[int]	  = 0
            for j in itertools.count(1      ):
                  SCREAMING_SNAKE_CASE			:   str	  = -1 if j % 2 == 0 else +1
                  SCREAMING_SNAKE_CASE			:   Any	  = (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() = }""")




