------
## 最终结论
```python
def minDays(bloomDay, m, k):
    n = len(bloomDay)
    if m * k > n:
        return -1
    
    def canMake(bloomDay, days, m, k):
        count = 0
        bouquets = 0
        
        for bloom in bloomDay:
            if bloom <= days:
                count += 1
                if count == k:
                    bouquets += 1
                    count = 0
            else:
                count = 0
            
            if bouquets >= m:
                return True
                
        return False

    left, right = min(bloomDay), max(bloomDay)
    
    while left < right:
        mid = (left + right) // 2
        if canMake(bloomDay, mid, m, k):
            right = mid
        else:
            left = mid + 1
            
    return left
```