```python
"""Melt a row of ice one simultaneous step at a time."""


def thaw_row(row: str, steps: int) -> str:
    if not isinstance(row, str) or not row:
        raise ValueError("thaw_row expects a non-empty string row")
    if not isinstance(steps, int) or steps < 0:
        raise ValueError("thaw_row expects a non-negative integer steps")
    if not all(c in ["#", "."] for c in row):
        raise ValueError("thaw_row expects a row of only '#' and '.'")

    # Melt process
    for _ in range(steps):
        new_row = ""
        for i in range(len(row)):
            if i == 0 or i == len(row) - 1 or row[i-1] == "#" or row[i+1] == "#":
                new_row += "."
            else:
                new_row += row[i]
        row = new_row

    return row
```