import math


def determine_ceiling(sky_conditions):
    """Ceiling is the lowest layer of broken or overcast clouds. Returns 
    `math.inf` if there is no ceiling
    """
    ceiling = math.inf
    for layer in sky_conditions:
        sky_cover = layer["sky_cover"]
        if sky_cover == "BKN" or sky_cover == "OVC":
            ceiling = layer["cloud_base"]
            break
    return ceiling