
def 						__magic_name__ (    __a			:       Union[str, Any]						):



     '''simple docstring'''




     if a < 0:
          raise ValueError("""Input value must be a positive integer"""						)
     elif isinstance(lowerCAmelCase__       ,		lowerCAmelCase__						):
          raise TypeError("""Input value must be a \'int\' type"""						)
     return bin(lowerCAmelCase__						).count("""1"""						)


if __name__ == "__main__":
    import doctest

    doctest.testmod()









'''simple docstring'''
# Algorithm for the pigeonhole sorting







def 					a__       (					lowerCAmelCase__						)    ->	Optional[Any]:
    UpperCAmelCase__			:		Any													=				min(lowerCAmelCase__						)  # min() finds the minimum value
    UpperCAmelCase__			:		Optional[int]													=				max(lowerCAmelCase__						)  # max() finds the maximum value

    UpperCAmelCase__			:		int													=				max_val - min_val + 1  # size is difference of max and min values plus one

    # list of pigeonholes of size equal to the variable size
    UpperCAmelCase__			:		Any													=				[0] * size

    # Populate the pigeonholes.
    for x in a:
        assert isinstance(lowerCAmelCase__  ,					lowerCAmelCase__						), "integers only please"
        holes[x - min_val] += 1

    # Putting the elements back into the array in an order.
    UpperCAmelCase__			:		Optional[int]													=				0
    for count in range(lowerCAmelCase__						):
        while holes[count] > 0:
            holes[count] -= 1
            UpperCAmelCase__			:		Dict													=				count + min_val
            i += 1





def 					a__       (					)    ->	Union[str, Any]:
    UpperCAmelCase__			:		List[str]													=				[8, 3, 2, 7, 4, 6, 8]
    pigeonhole_sort(lowerCAmelCase__						)
    print('''Sorted order is:'''  ,					''' '''.join(lowerCAmelCase__						)						)


if __name__ == "__main__":
  main()
