
    Given a client's current financial target amount, determine the next achievable target by rearranging its digits, which will help in setting progressive savings milestones. The new target must be the smallest possible number larger than the current target using exactly the same digits, ensuring realistic step-by-step financial goal progression. If no larger number can be formed with the same digits, return -1 to indicate the need for a new target setting approach.
    

    
def rearrange_bigger(n):
    """
    Given a client's current financial target amount, determine the next achievable target by rearranging its digits, which will help in setting progressive savings milestones. The new target must be the smallest possible number larger than the current target using exactly the same digits, ensuring realistic step-by-step financial goal progression. If no larger number can be formed with the same digits, return -1 to indicate the need for a new target setting approach.
    

    """
def rearrange_bigger(n):
    """
    Given a client's current financial target amount, determine the next achievable target by rearranging its digits, which will help in setting progressive savings milestones. The new target must be the smallest possible number larger than the current target using exactly the same digits, ensuring realistic step-by-step financial goal progression. If no larger number can be formed with the same digits, return -1 to indicate the need for a new target setting approach.
    

    """
    nums = list(str(n))
    for i in range(len(nums) - 2, -1, -1):
        if nums[i] < nums[i + 1]:
            z = nums[i:]
            y = min(filter(lambda x: x > z[0], z))
            z.remove(y)
            z.sort()
            nums[i:] = [y] + z
            return int(''.join(nums))
    return False