
'''simple docstring'''

from typing import TYPE_CHECKING

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


UpperCamelCase_            =    {
    """configuration_layoutlm""": ["""LAYOUTLM_PRETRAINED_CONFIG_ARCHIVE_MAP""", """LayoutLMConfig""", """LayoutLMOnnxConfig"""],
    """tokenization_layoutlm""": ["""LayoutLMTokenizer"""],
}

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

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCamelCase_            =    [
         """LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """LayoutLMForMaskedLM""",
         """LayoutLMForSequenceClassification""",
         """LayoutLMForTokenClassification""",
         """LayoutLMForQuestionAnswering""",
         """LayoutLMModel""",
         """LayoutLMPreTrainedModel""",
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCamelCase_            =    [
         """TF_LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """TFLayoutLMForMaskedLM""",
         """TFLayoutLMForSequenceClassification""",
         """TFLayoutLMForTokenClassification""",
         """TFLayoutLMForQuestionAnswering""",
         """TFLayoutLMMainLayer""",
         """TFLayoutLMModel""",
         """TFLayoutLMPreTrainedModel""",
     ]


if TYPE_CHECKING:
     from .configuration_layoutlm import LAYOUTLM_PRETRAINED_CONFIG_ARCHIVE_MAP, LayoutLMConfig, LayoutLMOnnxConfig
     from .tokenization_layoutlm import LayoutLMTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_layoutlm_fast import LayoutLMTokenizerFast

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_layoutlm import (
              LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST,
              LayoutLMForMaskedLM,
              LayoutLMForQuestionAnswering,
              LayoutLMForSequenceClassification,
              LayoutLMForTokenClassification,
              LayoutLMModel,
              LayoutLMPreTrainedModel,
          )
     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_layoutlm import (
              TF_LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFLayoutLMForMaskedLM,
              TFLayoutLMForQuestionAnswering,
              TFLayoutLMForSequenceClassification,
              TFLayoutLMForTokenClassification,
              TFLayoutLMMainLayer,
              TFLayoutLMModel,
              TFLayoutLMPreTrainedModel,
          )

else:
     import sys

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




'''simple docstring'''

def 		_UpperCAmelCase			(					_lowerCamelCase  :    int = 1_00						)      ->  int:
  _lowerCAmelCase    :					Dict							=   [[0 for _ in range(_lowerCamelCase						)] for _ in range(m + 1						)]
  for i in range(m + 1						):
    _lowerCAmelCase    :					List[str]							=   1

  for n in range(m + 1						):
    for k in range(1					, _lowerCamelCase						):
      memo[n][k] += memo[n][k - 1]
      if n > k:
        memo[n][k] += memo[n - k - 1][k]

  return memo[m][m - 1] - 1


if __name__ == "__main__":
     print(solution(int(input("""Enter a number: """).strip())))


