"""simple docstring"""
lowercase__					       =	[0, 2, 4, 6, 8]
lowercase__					       =	[1, 3, 5, 7, 9]







def 						__a   (	_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   )	->int:
  if remaining_length == 0:
    if digits[0] == 0 or digits[-1] == 0:
      return 0

    for i in range(length // 2 - 1		,     -1		,     -1   ):
      remainder += digits[i] + digits[length - i - 1]

      if remainder % 2 == 0:
        return 0

      remainder //= 10

    return 1

  if remaining_length == 1:
    if remainder % 2 == 0:
      return 0

    a__:     Union[str, Any]										=	0
    for digit in range(10   ):
      a__:     Tuple										=	digit
      result += reversible_numbers(
          0		,     (remainder + 2 * digit) // 10		,     _SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   )
    return result

  a__:     Dict										=	0
  for digita in range(10   ):
    a__:     List[str]										=	digita

    if (remainder + digita) % 2 == 0:
      a__:     Any										=	ODD_DIGITS
    else:
      a__:     Optional[int]										=	EVEN_DIGITS

    for digita in other_parity_digits:
      a__:     Dict										=	digita
      result += reversible_numbers(
          remaining_length - 2		,     (remainder + digita + digita) // 10		,     _SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE		,     )
  return result







def 						__a   (	_SCREAMING_SNAKE_CASE = 9   )	->int:
  a__:     Dict										=	0
  for length in range(1		,     max_power + 1   ):
    result += reversible_numbers(_SCREAMING_SNAKE_CASE		,     0		,     [0] * length		,     _SCREAMING_SNAKE_CASE   )
  return result


if __name__ == "__main__":
 print(f"{solution() = }")



"""simple docstring"""
def 						__a   (	_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   )	->int:
  while a != 0:
    a__							,    a__:     List[str]										=	b % a, a
  return b







def 						__a   (	_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   )	->int:
  if gcd(_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   ) != 1:
    a__:     Dict										=	F'mod inverse of {a!r} and {m!r} does not exist'
    raise ValueError(_SCREAMING_SNAKE_CASE   )
  a__							,    a__							,    a__:     Union[str, Any]										=	1, 0, a
  a__							,    a__							,    a__:     Any										=	0, 1, m
  while va != 0:
    a__:     int										=	ua // va
    a__							,    a__							,    a__							,    a__							,    a__							,    a__:     Any										=	(ua - q * va), (ua - q * va), (ua - q * va), va, va, va
  return ua % m


