```python
from typing import List

def drift_check(readings: List[int], step: int) -> int:
    """
    Given sensor readings in the order they were taken and an allowed step,
    return the position of the first reading that differs from the one immediately before it by more than that step,
    in either direction. Return minus one when every reading stays inside the allowed step.
    """
    if not readings:
        return -1
    
    for i in range(1, len(readings)):
        if abs(readings[i] - readings[i - 1]) > step:
            return i
    
    return -1
```