Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given an integer array bloomDay, an integer m and an integer k.
You want to make m bouquets. To make a bouquet, you need to use k adjacent flowers from the garden.
The garden consists of n flowers, the ith flower will bloom in the bloomDay[i] and then can be used in exactly one bouquet.
Return the minimum number of days you need to wait to be able to make m bouquets from the garden. If it is impossible to make m bouquets return -1.
 
Please complete the following python code precisely:
```python
class Solution:
    def minDays(self, bloomDay: List[int], m: int, k: int) -> int:
```