

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
    is_vision_available,
)


__a						:int            = {
    'configuration_mobilevitv2': [
        'MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'MobileViTV2Config',
        'MobileViTV2OnnxConfig',
    ],
}


try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __a						:Optional[Any]            = [
          'MOBILEVITV2_PRETRAINED_MODEL_ARCHIVE_LIST',
          'MobileViTV2ForImageClassification',
          'MobileViTV2ForSemanticSegmentation',
          'MobileViTV2Model',
          'MobileViTV2PreTrainedModel',
      ]

if TYPE_CHECKING:
      from .configuration_mobilevitva import (
          MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP,
          MobileViTVaConfig,
          MobileViTVaOnnxConfig,
      )

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_mobilevitva import (
                MOBILEVITV2_PRETRAINED_MODEL_ARCHIVE_LIST,
                MobileViTVaForImageClassification,
                MobileViTVaForSemanticSegmentation,
                MobileViTVaModel,
                MobileViTVaPreTrainedModel,
            )

else:
      import sys

      __a						:Tuple            = _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)


def 			__snake_case	(   __UpperCamelCase  :   str						):



      """simple docstring"""

      A_	     =							len(__UpperCamelCase						)
      A_	     =							[0] * length
      A_	     =							[[False for i in range(__UpperCamelCase						)] for j in range(__UpperCamelCase						)]
      for i, c in enumerate(__UpperCamelCase						):
            A_	     =							i
            for j in range(i + 1						):
                  if c == string[j] and (i - j < 2 or is_palindromic[j + 1][i - 1]):
                        A_	     =							True
                        A_	     =							min(__UpperCamelCase							,0 if j == 0 else (cut[j - 1] + 1)						)
            A_	     =							mincut
      return cut[length - 1]


if __name__ == "__main__":
      __a						:Union[str, Any]            = input('Enter the string: ').strip()
      __a						:Tuple            = find_minimum_partitions(s)
      print(F"Minimum number of partitions required for the '{s}' is {ans}")