def mpe_limits_cont_uncont_mwcm2(mhz: float) -> list:
    """Determine maximum permissible exposure limits for RF, from FCC references.

    :param mhz: The radio frequency of interest (megahertz)
    :return: MPE limits (mW/cm^2) for controlled & uncontrolled environments, respectively
    :raises ValueError: if mhz is out of range (cannot be found in the FCC lookup table)
    """
    if mhz <= 0:
        raise ValueError("frequency out of range: %s MHz" % str(mhz))
    elif mhz <= 1.34:
        return [100, 100]
    elif mhz < 3:
        return [100, 180 / (mhz ** 2)]
    elif mhz < 30:
        return [900 / (mhz ** 2), 180 / (mhz ** 2)]
    elif mhz < 300:
        return [1.0, 0.2]
    elif mhz < 1500:
        return [mhz / 300, mhz / 1500]
    elif mhz < 100000:
        return [5.0, 1.0]
    else:
        raise ValueError("frequency out of range: %s MHz" % str(mhz))