```python
from typing import *
from collections import *

def seat_run(row: str, party: int) -> int:
    if party == 0:
        return -1

    char_counts = Counter(row)
    free_seat_count = char_counts.get('.', 0)

    if free_seat_count < party:
        return -1

    start_index = 0
    for i in range(len(row)):
        if row[i] == '.':
            free_seat_count -= 1
            start_index += 1
            if free_seat_count <= party:
                return start_index - 1
        else:
            free_seat_count = char_counts.get('.', 0)

    return -1
```