code: 
  
  
  
  
  
  from __future__ import annotations
  
  __lowerCAmelCase     =			"Alexander Joslin"
  
  def     a						(      _lowercase   :     int       )     ->int:
  
  		if number <= 0:
  				UpperCamelCase__         =	F"""n must be greater than 0. Got n = {number}"""
  				raise ValueError(_lowercase       )
  
  		UpperCamelCase__         =	[number + 1] * (number + 1)
  
  		# starting position
  		UpperCamelCase__         =	0
  		for i in range(1 ,						_lowercase       ):
  				UpperCamelCase__         =	min(table[i + 1] ,						table[i] + 1       )
  				# check if out of bounds
  				if i * 2 <= number:
  						UpperCamelCase__         =	min(table[i * 2] ,						table[i] + 1       )
  				# check if out of bounds
  				if i * 3 <= number:
  						UpperCamelCase__         =	min(table[i * 3] ,						table[i] + 1       )
  		return table[number]
  
  
  if __name__ == "__main__":
  				import doctest
  
  				doctest.testmod()
  
  
  
  
  
  
style_context: 
  
  
  
  
  
  def     a						(      _lowercase   :     List[str]       )     ->List[str]:
  		UpperCamelCase__         =	[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       )       ):
  						UpperCamelCase__         =	collection[i]
  						UpperCamelCase__         =	i
  						while j >= gap and collection[j - gap] > insert_value:
  								UpperCamelCase__         =	collection[j - gap]
  								j -= gap
  						if j != i:
  								UpperCamelCase__         =	insert_value
  		return collection
  
  
  if __name__ == "__main__":
  				from doctest import testmod
  
  				testmod()
  				__lowerCAmelCase     =			input("Enter numbers separated by a comma:\n").strip()
  				__lowerCAmelCase     =			[int(item) for item in user_input.split(",")]
  				print(shell_sort(unsorted))
  
  
  
  
  
  