def running_extrema(nums):
    if not nums:
        return [], []
    low = high = nums[0]
    minimums, maximums = [], []
    for value in nums:
        low = min(low, value)
        high = max(high, value)
        minimums.append(low)
        maximums.append(high)
    return minimums, maximums
