





"""simple docstring"""






A	     =					{
    "km/h": 1.0,
    "m/s": 3.6,
    "mph": 1.609344,
    "knot": 1.852,
}

A	     =					{
    "km/h": 1.0,
    "m/s": 0.277777778,
    "mph": 0.621371192,
    "knot": 0.539956803,
}

def       __A (     a_  :float				,    a_  :str				,    a_  :str)						->						float:
				if unit_to not in speed_chart or unit_from not in speed_chart_inverse:
								__a	:  Dict         =					(
								    F"""Incorrect 'from_type' or 'to_type' value: {unit_from!r}, {unit_to!r}\n"""
								    F"""Valid values are: {", ".join(a_)}"""
								)
								raise ValueError(a_)
				return round(speed * speed_chart[unit_from] * speed_chart_inverse[unit_to]				,    3)


if __name__ == "__main__":
		import doctest

		doctest.testmod()






"""simple docstring"""






def       __A (     a_  :int = 1_00_00_00)						->						int:
				__a	:  Tuple         =					[i - 1 for i in range(limit + 1)]

				for i in range(2				,    limit + 1):
								if phi[i] == i - 1:
												for j in range(2 * i				,    limit + 1				,    a_):
																phi[j] -= phi[j] // i

				return sum(phi[2 : limit + 1])


if __name__ == "__main__":
		print(solution())