"""simple docstring"""



import inspect
import os
import unittest

import torch

import accelerate
from accelerate import debug_launcher
from accelerate.test_utils import (
    execute_subprocess_async,
    require_cpu,
    require_multi_gpu,
    require_single_gpu,
    test_sync,
)
from accelerate.utils import patch_environment
class 	__UpperCAmelCase						(unittest.TestCase    ):







			'''simple docstring'''





			def 		lowerCamelCase				( self       ):







										'''simple docstring'''


										A__					:    Optional[int]														= inspect.getfile(accelerate.test_utils       )
										A__					:    Tuple														= os.path.sep.join(mod_file.split(os.path.sep       )[:-1] + ["""scripts""", """test_sync.py"""]       )





			@require_cpu
			def 		lowerCamelCase				( self       ):







										'''simple docstring'''


										debug_launcher(test_sync.main      ,			num_processes=1       )





			@require_cpu
			def 		lowerCamelCase				( self       ):







										'''simple docstring'''


										debug_launcher(test_sync.main       )





			@require_single_gpu
			def 		lowerCamelCase				( self       ):







										'''simple docstring'''


										test_sync.main()





			@require_multi_gpu
			def 		lowerCamelCase				( self       ):







										'''simple docstring'''


										print(F'''Found {torch.cuda.device_count()} devices.'''       )
										A__					:    List[str]														= ["""torchrun""", F'''--nproc_per_node={torch.cuda.device_count()}''', self.test_file_path]
										with patch_environment(omp_num_threads=1       ):
																	execute_subprocess_async(snake_case_      ,			env=os.environ.copy()       )






"""simple docstring"""



def    _A(		lowerCAmelCase       ):
							A__					:    str														= len(lowerCAmelCase       )
							A__					:    List[Any]														= [0] * length
							A__					:    Union[str, Any]														= [[False for i in range(lowerCAmelCase       )] for j in range(lowerCAmelCase       )]
							for i, c in enumerate(lowerCAmelCase       ):
														A__					:    Dict														= i
														for j in range(i + 1       ):
																					if c == string[j] and (i - j < 2 or is_palindromic[j + 1][i - 1]):
																												A__					:    List[str]														= True
																												A__					:    Optional[Any]														= min(lowerCAmelCase ,     0 if j == 0 else (cut[j - 1] + 1)       )
														A__					:    Optional[int]														= mincut
							return cut[length - 1]


if __name__ == "__main__":
				_UpperCamelCase         =		input("Enter the string: ").strip()
				_UpperCamelCase         =		find_minimum_partitions(s)
				print(F'Minimum number of partitions required for the \'{s}\' is {ans}')





