



from collections import namedtuple

UpperCAmelCase_          =				namedtuple("from_to", "from_ to")

UpperCAmelCase_          =				{
    'millimeter': 'mm',
    'centimeter': 'cm',
    'meter': 'm',
    'kilometer': 'km',
    'inch': 'in',
    'inche': 'in',  # Trailing 's' has been stripped off
    'feet': 'ft',
    'foot': 'ft',
    'yard': 'yd',
    'mile': 'mi',
}

UpperCAmelCase_          =				{
    'mm': from_to(0.001, 1_0_0_0),
    'cm': from_to(0.01, 1_0_0),
    'm': from_to(1, 1),
    'km': from_to(1_0_0_0, 0.001),
    'in': from_to(0.0254, 39.3701),
    'ft': from_to(0.3048, 3.2_8084),
    'yd': from_to(0.9144, 1.0_9361),
    'mi': from_to(1_6_0_9.3_4, 0.0_0062_1371),
}
def 				UpperCAmelCase__		(					_SCREAMING_SNAKE_CASE :						Union[str, Any]  ,					_SCREAMING_SNAKE_CASE :						Any  ,					_SCREAMING_SNAKE_CASE :						Union[str, Any]					)->float:
      _lowerCAmelCase			      =	from_type.lower().rstrip('''s'''					)
      _lowerCAmelCase			      =	TYPE_CONVERSION.get(_SCREAMING_SNAKE_CASE  ,					_SCREAMING_SNAKE_CASE					)
      _lowerCAmelCase			      =	to_type.lower().rstrip('''s'''					)
      _lowerCAmelCase			      =	TYPE_CONVERSION.get(_SCREAMING_SNAKE_CASE  ,					_SCREAMING_SNAKE_CASE					)
      if new_from not in METRIC_CONVERSION:
            _lowerCAmelCase			      =	(
                f'''Invalid \'from_type\' value: {from_type!r}.\n'''
                f'''Conversion abbreviations are: {", ".join(_SCREAMING_SNAKE_CASE					)}'''
            )
            raise ValueError(_SCREAMING_SNAKE_CASE					)
      if new_to not in METRIC_CONVERSION:
            _lowerCAmelCase			      =	(
                f'''Invalid \'to_type\' value: {to_type!r}.\n'''
                f'''Conversion abbreviations are: {", ".join(_SCREAMING_SNAKE_CASE					)}'''
            )
            raise ValueError(_SCREAMING_SNAKE_CASE					)
      return value * METRIC_CONVERSION[new_from].from_ * METRIC_CONVERSION[new_to].to


if __name__ == "__main__":
    import doctest

    doctest.testmod()

'''simple docstring'''







def 				_snake_case (		lowercase						)       ->       Tuple:
				__a       :     Union[str, Any]								=	[7_0_1, 3_0_1, 1_3_2, 5_7, 2_3, 1_0, 4, 1]
				for gap in gaps:
								for i in range(lowercase			,    len(lowercase						)						):
												__a       :     Tuple								=	collection[i]
												__a       :     Optional[int]								=	i
												while j >= gap and collection[j - gap] > insert_value:
																__a       :     Tuple								=	collection[j - gap]
																j -= gap
												if j != i:
																__a       :     Dict								=	insert_value
				return collection


if __name__ == "__main__":
					from doctest import testmod

					testmod()
					__SCREAMING_SNAKE_CASE		:  Any        =      input('Enter numbers separated by a comma:\n').strip()
					__SCREAMING_SNAKE_CASE		:  Optional[int]        =      [int(item) for item in user_input.split(',')]
					print(shell_sort(unsorted))