


def 			__SCREAMING_SNAKE_CASE		(		UpperCamelCase		:      int     ,					UpperCamelCase		:      int	)     ->	int:



	"""simple docstring"""






	if a < b:
		return gcd(UpperCamelCase     ,					UpperCamelCase	)
	if a % b == 0:
		return b
	return gcd(UpperCamelCase     ,					a % b	)

def 			__SCREAMING_SNAKE_CASE		(		UpperCamelCase		:      int     ,					UpperCamelCase		:      int     ,					UpperCamelCase		:      int	)     ->	int:



	"""simple docstring"""






	if y == 0:
		return 1
	a_     			=   power(UpperCamelCase     ,					y // 2     ,					UpperCamelCase	) % mod
	a_     			=   (temp * temp) % mod
	if y % 2 == 1:
		a_     			=   (temp * x) % mod
	return temp

def 			__SCREAMING_SNAKE_CASE		(		UpperCamelCase		:      int	)     ->	bool:



	"""simple docstring"""






	a_     			=   2
	while b < n:
		if gcd(UpperCamelCase     ,					UpperCamelCase	) == 1 and power(UpperCamelCase     ,					n - 1     ,					UpperCamelCase	) != 1:
			return False
		b += 1
	return True


if __name__ == "__main__":
			_A							     =       int(input('Enter number: ').strip())
			if is_carmichael_number(number):
						print(f'{number} is a Carmichael Number.')
			else:
						print(f'{number} is not a Carmichael Number.')



def 			__SCREAMING_SNAKE_CASE		(		UpperCamelCase		:      str	)     ->	int:



	"""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							     =       input('Enter the string: ').strip()
			_A							     =       find_minimum_partitions(s)
			print(f'Minimum number of partitions required for the \'{s}\' is {ans}')