


'''simple docstring'''





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


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







'''simple docstring'''





def 					a__    (				UpperCamelCase_	:			int = 100	):
   UpperCAmelCase__  :List[str]            =			1
   UpperCAmelCase__  :Dict            =			0
   for i in range(1,      num + 1	):
      fact *= i

   for j in str(UpperCamelCase_	):
      result += int(UpperCamelCase_	)

   return result


if __name__ == "__main__":
    print(solution(int(input('''Enter the Number: ''').strip())))



