def hard_combine_max(a, b):
    """Takes in 2 lists of integers and returns a new list where each value represents the maxmimum of the input lists at that index. If the lists are not the same length, then the extra values in the longer list should be assumed to be valid maximum values and therefore included in the result."""
    # too tricky?
    z = [max(x, y) for x, y in zip(a, b)]
    if len(a) > len(b):
        z += a[len(b):]
    elif len(b) > len(a):
        z += b[len(a):]
    return z