def ri():

    return int(eval(input()))





def rii():

    return [int(v) for v in input().split()]





a, b, c, d = rii()

m = max(a * c, a * d, b * c, b * d)

print(m)

def ri():

    return int(eval(input()))





def rii():

    return [int(v) for v in input().split()]





def solve(*args):

    a, b, c, d = args

    return max(a * c, a * d, b * c, b * d)





if __name__ == "__main__":

    print((solve(*rii())))
def ri():
    return int(eval(input()))


def rii():
    return [int(v) for v in input().split()]


a, b, c, d = rii()
m = max(a * c, a * d, b * c, b * d)
print(m)

def ri():
    return int(eval(input()))


def rii():
    return [int(v) for v in input().split()]


def solve(*args):
    a, b, c, d = args
    return max(a * c, a * d, b * c, b * d)


if __name__ == "__main__":
    print((solve(*rii())))

-a, b, c, d = rii() -m = max(a * c, a * d, b * c, b * d) -print(m) +def solve(*args): +    a, b, c, d = args +    return max(a * c, a * d, b * c, b * d) + + +if __name__ == "__main__": +    print((solve(*rii())))