



from typing import Any



class 						_snake_case :





 """simple docstring"""



 def __init__(  self   )		->							int:




   """simple docstring"""







   _A          =      []
   _A          =      0
 def __str__(  self   )		->							Optional[int]:




   """simple docstring"""







   _A          =      '''<''' + str(self.stack   )[1:-1] + '''>'''
   return printed
 def lowercase_						(  self		,      a   )		->							None:




   """simple docstring"""







   self.stack.append(snake_case_   )
   _A          =      self.length + 1
 def lowercase_						(  self   )		->							Any:




   """simple docstring"""







   self.rotate(1   )
   _A          =      self.stack[self.length - 1]
   _A          =      self.stack[:-1]
   self.rotate(self.length - 1   )
   _A          =      self.length - 1
   return dequeued
 def lowercase_						(  self		,      a   )		->							None:




   """simple docstring"""







   for _ in range(snake_case_   ):
     _A          =      self.stack[0]
     _A          =      self.stack[1:]
     self.put(snake_case_   )
     _A          =      self.length - 1
 def lowercase_						(  self   )		->							Any:




   """simple docstring"""







   _A          =      self.get()
   self.put(snake_case_   )
   self.rotate(self.length - 1   )
   return front



 def lowercase_						(  self   )		->							int:




   """simple docstring"""







   return self.length




import math
from timeit import timeit




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  _A          =      0
  _A          =      abs(__snake_case							)
  while True:
    _A          =      n // 10
    digits += 1
    if n == 0:
      break
  return digits




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return 1 if n == 0 else math.floor(math.log(abs(__snake_case							)  ,			10							) + 1							)




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return len(str(abs(__snake_case							)							)							)




def       UpperCAmelCase__	(							)				->	None:
  from collections.abc import Callable

  def benchmark_a_function(__snake_case  ,			__snake_case							) -> None:
    _A          =      F'''{func.__name__}({value})'''
    _A          =      timeit(F'''__main__.{call}'''  ,			setup='''import __main__'''							)
    print(F'''{call}: {func(__snake_case							)} -- {timing} seconds'''							)

  for value in (262_144, 1_125_899_906_842_624, 1_267_650_600_228_229_401_496_703_205_376):
    for func in (num_digits, num_digits_fast, num_digits_faster):
      benchmark_a_function(__snake_case  ,			__snake_case							)
    print()


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    benchmark()