import sys



readline = sys.stdin.readline

MOD = 10 ** 9 + 7

INF = float('INF')

sys.setrecursionlimit(10 ** 5)





def main():

    a, b, c, d = list(map(int, readline().split()))



    ans = -INF



    for x in (a, b):

        for y in (c, d):

            ans = max(ans, x * y)



    print(ans)





if __name__ == '__main__':

    main()

a, b, c, d = list(map(int, input().split()))



ans = -float("INF")  # 答えがマイナスになることがあるので、負の無限大を初期値にしておきます



for x in (a, b):

    for y in (c, d):

        ans = max(ans, x * y)



print(ans)
import sys

readline = sys.stdin.readline
MOD = 10**9 + 7
INF = float("INF")
sys.setrecursionlimit(10**5)


def main():
    a, b, c, d = list(map(int, readline().split()))
    ans = -INF
    for x in (a, b):
        for y in (c, d):
            ans = max(ans, x * y)
    print(ans)


if __name__ == "__main__":
    main()

a, b, c, d = list(map(int, input().split()))
ans = -float("INF")  # 答えがマイナスになることがあるので、負の無限大を初期値にしておきます
for x in (a, b):
    for y in (c, d):
        ans = max(ans, x * y)
print(ans)

-import sys - -readline = sys.stdin.readline -MOD = 10**9 + 7 -INF = float("INF") -sys.setrecursionlimit(10**5) - - -def main(): -    a, b, c, d = list(map(int, readline().split())) -    ans = -INF -    for x in (a, b): -        for y in (c, d): -            ans = max(ans, x * y) -    print(ans) - - -if __name__ == "__main__": -    main() +a, b, c, d = list(map(int, input().split())) +ans = -float("INF")  # 答えがマイナスになることがあるので、負の無限大を初期値にしておきます +for x in (a, b): +    for y in (c, d): +        ans = max(ans, x * y) +print(ans)