```python

def drift_check(readings: list, step: int) -> int:
    if not readings or not isinstance(step, int):
        raise ValueError("Readings must be a non-empty list and step must be an integer.")

    for i in range(1, len(readings)):
        if abs(readings[i] - readings[i-1]) > step:
            return i

    return -1
```