





A__:    List[str]  	=	{
    '''meter''': '''m''',
    '''kilometer''': '''km''',
    '''megametre''': '''Mm''',
    '''gigametre''': '''Gm''',
    '''terametre''': '''Tm''',
    '''petametre''': '''Pm''',
    '''exametre''': '''Em''',
    '''zettametre''': '''Zm''',
    '''yottametre''': '''Ym''',
}
# Exponent of the factor(meter)
A__:    int  	=	{
    '''m''': 0,
    '''km''': 3,
    '''Mm''': 6,
    '''Gm''': 9,
    '''Tm''': 12,
    '''Pm''': 15,
    '''Em''': 18,
    '''Zm''': 21,
    '''Ym''': 24,
}



def 				lowerCAmelCase_ (							A_    ,A_    ,A_):
    UpperCamelCase__:	Union[str, Any]					=     from_type.lower().strip("s")
    UpperCamelCase__:	Optional[Any]					=     to_type.lower().strip("s")

    UpperCamelCase__:	Optional[Any]					=     UNIT_SYMBOL.get(A_    ,A_)
    UpperCamelCase__:	Optional[int]					=     UNIT_SYMBOL.get(A_    ,A_)

    if from_sanitized not in METRIC_CONVERSION:
        UpperCamelCase__:	Optional[Any]					=     (
            F"Invalid 'from_type' value: {from_type!r}.\n"
            F"Conversion abbreviations are: {', '.join(A_)}"
        )
        raise ValueError(A_)
    if to_sanitized not in METRIC_CONVERSION:
        UpperCamelCase__:	str					=     (
            F"Invalid 'to_type' value: {to_type!r}.\n"
            F"Conversion abbreviations are: {', '.join(A_)}"
        )
        raise ValueError(A_)
    UpperCamelCase__:	Dict					=     METRIC_CONVERSION[from_sanitized]
    UpperCamelCase__:	List[Any]					=     METRIC_CONVERSION[to_sanitized]
    UpperCamelCase__:	Tuple					=     1

    if from_exponent > to_exponent:
        UpperCamelCase__:	Optional[int]					=     from_exponent - to_exponent
    else:
        UpperCamelCase__:	Tuple					=     -(to_exponent - from_exponent)

    return value * pow(10    ,A_)


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

   testmod()








from __future__ import annotations

A__:    List[Any]  	=	10



def 				lowerCAmelCase_ (							A_):
    UpperCamelCase__:	Tuple					=     1
    UpperCamelCase__:	str					=     max(A_)
    while placement <= max_digit:
        # declare and initialize empty buckets
        UpperCamelCase__:	list[list]					=     [[] for _ in range(A_)]
        # split list_of_ints between the buckets
        for i in list_of_ints:
            UpperCamelCase__:	Union[str, Any]					=     int((i / placement) % RADIX)
            buckets[tmp].append(A_)
        # put each buckets' contents into list_of_ints
        UpperCamelCase__:	Union[str, Any]					=     0
        for b in range(A_):
            for i in buckets[b]:
                UpperCamelCase__:	Any					=     i
                a += 1
        # move to next
        placement *= RADIX
    return list_of_ints


if __name__ == "__main__":
   import doctest

   doctest.testmod()

