





'''simple docstring'''

from math import factorial







def 							UpperCAmelCase_    (	lowerCAmelCase_ = 20							):

				"""simple docstring"""






				lowercase         = 2 * n  # middle entry of odd rows starting at row 3 is the solution for n = 1,
				# 2, 3,...
				lowercase         = n // 2

				return int(factorial(lowerCAmelCase_							) / (factorial(lowerCAmelCase_							) * factorial(n - k							))							)


if __name__ == "__main__":
			import sys

			if len(sys.argv) == 1:
						print(solution(20))
			else:
						try:
									__lowerCamelCase : List[str]				=			int(sys.argv[1])
									print(solution(n))
						except ValueError:
									print("Invalid entry - please enter a number.")











'''simple docstring'''

# Algorithm for the pigeonhole sorting









def 							UpperCAmelCase_    (	lowerCAmelCase_							):

				"""simple docstring"""






				lowercase         = min(lowerCAmelCase_							)  # min() finds the minimum value
				lowercase         = max(lowerCAmelCase_							)  # max() finds the maximum value

				lowercase         = 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
				lowercase         = [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.
				lowercase         = 0
				for count in range(lowerCAmelCase_							):
								while holes[count] > 0:
												holes[count] -= 1
												lowercase         = count + min_val
												i += 1







def 							UpperCAmelCase_    (	):

				"""simple docstring"""






				lowercase         = [8, 3, 2, 7, 4, 6, 8]
				pigeonhole_sort(lowerCAmelCase_							)
				print("Sorted order is:"		,							" ".join(lowerCAmelCase_							)							)


if __name__ == "__main__":
			main()




