



def 						UpperCamelCase      (  snake_case__			:       list[int]			,	snake_case__			:       str      )      ->	list[int]:
   UpperCamelCase       :    int		      =      int(snake_case__      )

   # Initialize Result
   UpperCamelCase       :    List[Any]		      =      []

   # Traverse through all denomination
   for denomination in reversed(snake_case__      ):
      # Find denominations
      while int(snake_case__      ) >= int(snake_case__      ):
         total_value -= int(snake_case__      )
         answer.append(snake_case__      )  # Append the "answers" array

   return answer


# Driver Code
if __name__ == "__main__":
    __UpperCAmelCase			  =			[]
    __UpperCAmelCase			  =			'''0'''

    if (
        input('''Do you want to enter your denominations ? (yY/n): ''').strip().lower()
        == "y"
    ):
        __UpperCAmelCase			  =			int(input('''Enter the number of denominations you want to add: ''').strip())

        for i in range(0, n):
            denominations.append(int(input(F"""Denomination {i}: """).strip()))
        __UpperCAmelCase			  =			input('''Enter the change you want to make in Indian Currency: ''').strip()
    else:
        # All denominations of Indian Currency if user does not enter
        __UpperCAmelCase			  =			[1, 2, 5, 10, 20, 50, 100, 500, 2_000]
        __UpperCAmelCase			  =			input('''Enter the change you want to make: ''').strip()

    if int(value) == 0 or int(value) < 0:
        print('''The total value cannot be zero or negative.''')

    else:
        print(F"""Following is minimal change for {value}: """)
        __UpperCAmelCase			  =			find_minimum_change(denominations, value)
        # Print result
        for i in range(len(answer)):
            print(answer[i], end=''' ''')






import math


def 							__lowerCAmelCase     (							_UpperCamelCase		:	int						)		->				list[int]:
 '''simple docstring'''


 SCREAMING_SNAKE_CASE		    =      []
 SCREAMING_SNAKE_CASE		    =      2
 SCREAMING_SNAKE_CASE		    =      int(math.sqrt(_UpperCamelCase						)						)  # Size of every segment
 SCREAMING_SNAKE_CASE		    =      [True] * (end + 1)
 SCREAMING_SNAKE_CASE		    =      []

 while start <= end:
  if temp[start] is True:
   in_prime.append(_UpperCamelCase						)
   for i in range(start * start		,				end + 1		,				_UpperCamelCase						):
    SCREAMING_SNAKE_CASE		    =      False
  start += 1
 prime += in_prime

 SCREAMING_SNAKE_CASE		    =      end + 1
 SCREAMING_SNAKE_CASE		    =      min(2 * end		,				_UpperCamelCase						)

 while low <= n:
  SCREAMING_SNAKE_CASE		    =      [True] * (high - low + 1)
  for each in in_prime:
   SCREAMING_SNAKE_CASE		    =      math.floor(low / each						) * each
   if t < low:
    t += each

   for j in range(_UpperCamelCase		,				high + 1		,				_UpperCamelCase						):
    SCREAMING_SNAKE_CASE		    =      False

  for j in range(len(_UpperCamelCase						)						):
   if temp[j] is True:
    prime.append(j + low						)

  SCREAMING_SNAKE_CASE		    =      high + 1
  SCREAMING_SNAKE_CASE		    =      min(high + end		,				_UpperCamelCase						)

 return prime




print(sieve(10**6))

