def C_Make_a_Rectangle(lst):

    N = lst[0]

    A = lst[1:]



    from collections import Counter, deque

    c = sorted(list(Counter(A).items()), reverse=True)  # リストの要素が何回現れたか

    # cの0番要素は値、1番要素は度数



    ans = deque([])

    for k, v in c:

        if v == 1:

            continue

        elif v == 2 or v == 3:

            ans.append(k)

            if len(ans) == 2:

                break

        else:

            ans.append(k)

            ans.append(k)

            break



    if len(ans) < 2:

        return 0

    else:

        return ans[0] * ans[1]



n = int(eval(input()))

l = [int(i) for i in input().split()]

x = [n] + l

print((C_Make_a_Rectangle(x)))
def c_make_a_rectangle(N, A):

    from collections import Counter

    count = Counter(A)  # リストの要素が何回現れたか



    cond = []  # 同じ長さのものが2個ある棒の長さ

    for k, v in list(count.items()):

        if v == 1:  # 1個しかない棒では長方形を作れない

            continue

        else:

            cond.extend([k] * (v // 2))

    if len(cond) <= 1:

        return 0  # 長方形を作れない

    cond = sorted(cond, reverse=True)

    ans = cond[0] * cond[1]  # 長いもの2組を使う

    return ans



N = int(eval(input()))

A = [int(i) for i in input().split()]

print((c_make_a_rectangle(N, A)))
def C_Make_a_Rectangle(lst):
    N = lst[0]
    A = lst[1:]
    from collections import Counter, deque

    c = sorted(list(Counter(A).items()), reverse=True)  # リストの要素が何回現れたか
    # cの0番要素は値、1番要素は度数
    ans = deque([])
    for k, v in c:
        if v == 1:
            continue
        elif v == 2 or v == 3:
            ans.append(k)
            if len(ans) == 2:
                break
        else:
            ans.append(k)
            ans.append(k)
            break
    if len(ans) < 2:
        return 0
    else:
        return ans[0] * ans[1]


n = int(eval(input()))
l = [int(i) for i in input().split()]
x = [n] + l
print((C_Make_a_Rectangle(x)))

def c_make_a_rectangle(N, A):
    from collections import Counter

    count = Counter(A)  # リストの要素が何回現れたか
    cond = []  # 同じ長さのものが2個ある棒の長さ
    for k, v in list(count.items()):
        if v == 1:  # 1個しかない棒では長方形を作れない
            continue
        else:
            cond.extend([k] * (v // 2))
    if len(cond) <= 1:
        return 0  # 長方形を作れない
    cond = sorted(cond, reverse=True)
    ans = cond[0] * cond[1]  # 長いもの2組を使う
    return ans


N = int(eval(input()))
A = [int(i) for i in input().split()]
print((c_make_a_rectangle(N, A)))

-def C_Make_a_Rectangle(lst): -    N = lst[0] -    A = lst[1:] -    from collections import Counter, deque +def c_make_a_rectangle(N, A): +    from collections import Counter -    c = sorted(list(Counter(A).items()), reverse=True)  # リストの要素が何回現れたか -    # cの0番要素は値、1番要素は度数 -    ans = deque([]) -    for k, v in c: -        if v == 1: +    count = Counter(A)  # リストの要素が何回現れたか +    cond = []  # 同じ長さのものが2個ある棒の長さ +    for k, v in list(count.items()): +        if v == 1:  # 1個しかない棒では長方形を作れない -        elif v == 2 or v == 3: -            ans.append(k) -            if len(ans) == 2: -                break -            ans.append(k) -            ans.append(k) -            break -    if len(ans) < 2: -        return 0 -    else: -        return ans[0] * ans[1] +            cond.extend([k] * (v // 2)) +    if len(cond) <= 1: +        return 0  # 長方形を作れない +    cond = sorted(cond, reverse=True) +    ans = cond[0] * cond[1]  # 長いもの2組を使う +    return ans -n = int(eval(input())) -l = [int(i) for i in input().split()] -x = [n] + l -print((C_Make_a_Rectangle(x))) +N = int(eval(input())) +A = [int(i) for i in input().split()] +print((c_make_a_rectangle(N, A)))