```python
def drift_check(readings: list, step: int) -> int:
    """Return the index of the first reading that differs from the previous one by more than step, or -1."""
    if not readings or len(readings) < 2:
        return -1
    
    for i in range(1, len(readings)):
        if abs(readings[i] - readings[i - 1]) > step:
            return i
            
    return -1
```