



'''simple docstring'''






UpperCamelCase__:     str										=    {
    "A": ".-", "B": "-...", "C": "-.-.", "D": "-..", "E": ".", "F": "..-.", "G": "--.",
    "H": "....", "I": "..", "J": ".---", "K": "-.-", "L": ".-..", "M": "--", "N": "-.",
    "O": "---", "P": ".--.", "Q": "--.-", "R": ".-.", "S": "...", "T": "-", "U": "..-",
    "V": "...-", "W": ".--", "X": "-..-", "Y": "-.--", "Z": "--..", "1": ".----",
    "2": "..---", "3": "...--", "4": "....-", "5": ".....", "6": "-....", "7": "--...",
    "8": "---..", "9": "----.", "0": "-----", "&": ".-...", "@": ".--.-.",
    ":": "---...", ",": "--..--", ".": ".-.-.-", "'": ".----.", "\"": ".-..-.",
    "?": "..--..", "/": "-..-.", "=": "-...-", "+": ".-.-.", "-": "-....-",
    "(": "-.--.", ")": "-.--.-", "!": "-.-.--", " ": "/"
}  # Exclamation mark is not in ITU-R recommendation
# fmt: on
UpperCamelCase__:     Tuple										=    {value: key for key, value in MORSE_CODE_DICT.items()}


def 				snake_case_  (      _lowerCAmelCase						:		str						)   ->     str:
							return " ".join(MORSE_CODE_DICT[char] for char in message.upper()						)


def 				snake_case_  (      _lowerCAmelCase						:		str						)   ->     str:
							return "".join(REVERSE_DICT[char] for char in message.split()						)


def 				snake_case_  (      )   ->     None:
							UpperCAmelCase				: Optional[int]											=	'''Morse code here!'''
							print(_lowerCAmelCase						)
							UpperCAmelCase				: Optional[Any]											=	encrypt(_lowerCAmelCase						)
							print(_lowerCAmelCase						)
							UpperCAmelCase				: Optional[Any]											=	decrypt(_lowerCAmelCase						)
							print(_lowerCAmelCase						)


if __name__ == "__main__":
						main()










'''simple docstring'''






UpperCamelCase__:     dict[tuple[int, int, int], int]										=    {}


def 				snake_case_  (      _lowerCAmelCase						:		int     ,   _lowerCAmelCase						:		int     ,   _lowerCAmelCase						:		int						)   ->     int:

							# if we are absent twice, or late 3 consecutive days,
							# no further prize strings are possible
							if late == 3 or absent == 2:
														return 0

							# if we have no days left, and have not failed any other rules,
							# we have a prize string
							if days == 0:
														return 1

							# No easy solution, so now we need to do the recursive calculation

							# First, check if the combination is already in the cache, and
							# if yes, return the stored value from there since we already
							# know the number of possible prize strings from this point on
							UpperCAmelCase				: List[Any]											=	(days, absent, late)
							if key in cache:
														return cache[key]

							# now we calculate the three possible ways that can unfold from
							# this point on, depending on our attendance today

							# 1) if we are late (but not absent), the "absent" counter stays as
							# it is, but the "late" counter increases by one
							UpperCAmelCase				: int											=	_calculate(days - 1     ,   _lowerCAmelCase     ,   late + 1						)

							# 2) if we are absent, the "absent" counter increases by 1, and the
							# "late" counter resets to 0
							UpperCAmelCase				: Optional[Any]											=	_calculate(days - 1     ,   absent + 1     ,   0						)

							# 3) if we are on time, this resets the "late" counter and keeps the
							# absent counter
							UpperCAmelCase				: Tuple											=	_calculate(days - 1     ,   _lowerCAmelCase     ,   0						)

							UpperCAmelCase				: str											=	state_late + state_absent + state_ontime

							UpperCAmelCase				: List[Any]											=	prizestrings
							return prizestrings


def 				snake_case_  (      _lowerCAmelCase						:		int = 30						)   ->     int:
							return _calculate(_lowerCAmelCase     ,   absent=0     ,   late=0						)


if __name__ == "__main__":
						print(solution())





