def next_smaller(nums):
    answer = [-1] * len(nums)
    stack = []
    for i, value in enumerate(nums):
        while stack and nums[stack[-1]] > value:
            answer[stack.pop()] = value
        stack.append(i)
    return answer
