<p>You are given an integer array <code>nums</code> and an integer <code>k</code>. Append <code>k</code> <strong>unique positive</strong> integers that do <strong>not</strong> appear in <code>nums</code> to <code>nums</code> such that the resulting total sum is <strong>minimum</strong>.</p>

<p>Return<em> the sum of the</em> <code>k</code> <em>integers appended to</em> <code>nums</code>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> nums = [1,4,25,10,25], k = 2
<strong>Output:</strong> 5
<strong>Explanation:</strong> The two unique positive integers that do not appear in nums which we append are 2 and 3.
The resulting sum of nums is 1 + 4 + 25 + 10 + 25 + 2 + 3 = 70, which is the minimum.
The sum of the two integers appended is 2 + 3 = 5, so we return 5.</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> nums = [5,6], k = 6
<strong>Output:</strong> 25
<strong>Explanation:</strong> The six unique positive integers that do not appear in nums which we append are 1, 2, 3, 4, 7, and 8.
The resulting sum of nums is 5 + 6 + 1 + 2 + 3 + 4 + 7 + 8 = 36, which is the minimum. 
The sum of the six integers appended is 1 + 2 + 3 + 4 + 7 + 8 = 25, so we return 25.
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= nums.length &lt;= 10<sup>5</sup></code></li>
	<li><code>1 &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
	<li><code>1 &lt;= k &lt;= 10<sup>8</sup></code></li>
</ul>

class Solution:
    def minimalKSum(self, nums: List[int], k: int) -> int:
        # Step 1: Sort the array
        nums.sort()
        
        # Step 2: Initialize variables
        result = 0
        start = 1
        
        # Step 3: Iterate through the sorted array to find missing numbers
        for num in nums:
            if num > start:
                # Calculate the number of missing numbers between start and num
                missing = num - start
                if missing > 0:
                    if missing <= k:
                        # Add the sum of these missing numbers to the result
                        result += (start + num - 1) * missing // 2
                        k -= missing
                    else:
                        # Add the sum of the first k missing numbers to the result
                        result += (start + start + k - 1) * k // 2
                        return result
            start = num + 1
        
        # If there are still missing numbers, add the sum of the remaining k numbers
        if k > 0:
            result += (start + start + k - 1) * k // 2
        
        return result

# Example usage:
solution = Solution()
print(solution.minimalKSum([1, 4, 25, 10, 25], 2))  # Output: 5
print(solution.minimalKSum([5, 6], 6))  # Output: 25
488