





def 				SCREAMING_SNAKE_CASE__    (     __a ,			__a ):
	snake_case_		:      Any           =						1.0
	for i in range(1 ,			r + 1 ):
		ret *= (n + 1 - i) / i
	return round(__a )


def 				SCREAMING_SNAKE_CASE__    (     __a ):
	return choose(8 + n ,			__a ) + choose(9 + n ,			__a ) - 10


def 				SCREAMING_SNAKE_CASE__    (     __a ):
	return sum(non_bouncy_exact(__a ) for i in range(1 ,			n + 1 ) )


def 				SCREAMING_SNAKE_CASE__    (     __a = 1_00 ):
	return non_bouncy_upto(__a )


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









from __future__ import annotations




def       _a   (							lowerCamelCase__				)  ->      list[int]:
 lowerCamelCase_							:    Any							=     [0] * max_one

 for i in range(0 ,			lowerCamelCase__				):
  lowerCamelCase_							:    Union[str, Any]							=     i

 for i in range(2 ,			lowerCamelCase__				):
  if totients[i] == i:
   for j in range(lowerCamelCase__ ,			lowerCamelCase__ ,			lowerCamelCase__				):
    totients[j] -= totients[j] // i

 return totients




def       _a   (							lowerCamelCase__ ,			lowerCamelCase__				)  ->      bool:
 return sorted(str(lowerCamelCase__				)				) == sorted(str(lowerCamelCase__				)				)




def       _a   (							lowerCamelCase__ = 10_00_00_00				)  ->      int:
 lowerCamelCase_							:    Tuple							=     1  # i
 lowerCamelCase_							:    Union[str, Any]							=     0  # φ(i)
 lowerCamelCase_							:    List[Any]							=     get_totients(max_n + 1				)

 for i in range(2 ,			max_n + 1				):
  lowerCamelCase_							:    Tuple							=     totients[i]

  if i * min_denominator < min_numerator * t and has_same_digits(lowerCamelCase__ ,			lowerCamelCase__				):
   lowerCamelCase_							:    str							=     i
   lowerCamelCase_							:    List[Any]							=     t

 return min_numerator


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