def d_binomial_coefficients(N, A):

    if N == 2:

        return '{} {}'.format(max(A), min(A))

    import numpy

    max_a = max(A)

    tmp = max_a / 2

    idx = numpy.abs(numpy.asarray(A) - tmp).argmin()

    ans = '{} {}'.format(max_a, A[idx])

    return ans



N = int(eval(input()))

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

print((d_binomial_coefficients(N, A)))
def d_binomial_coefficients(N, A):

    max_a = max(A)  # comb(n,r)のnをこの値以外にする理由はない

    half = max_a / 2  # この値に最も近い整数をcomb(n,r)のrとする

    r = -1

    tmp = float('inf')  # halfとの差の絶対値

    for e in A:

        if e == max_a:

            continue  # nと同じものを選んではいけない

        diff = abs(e - half)

        if diff < tmp:  # n/2により近い整数を発見したなら、更新する

            r = e

            tmp = diff

    ans = '{} {}'.format(max_a, r)

    return ans

N = int(eval(input()))

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

print((d_binomial_coefficients(N, A)))
def d_binomial_coefficients(N, A):
    if N == 2:
        return "{} {}".format(max(A), min(A))
    import numpy

    max_a = max(A)
    tmp = max_a / 2
    idx = numpy.abs(numpy.asarray(A) - tmp).argmin()
    ans = "{} {}".format(max_a, A[idx])
    return ans


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

def d_binomial_coefficients(N, A):
    max_a = max(A)  # comb(n,r)のnをこの値以外にする理由はない
    half = max_a / 2  # この値に最も近い整数をcomb(n,r)のrとする
    r = -1
    tmp = float("inf")  # halfとの差の絶対値
    for e in A:
        if e == max_a:
            continue  # nと同じものを選んではいけない
        diff = abs(e - half)
        if diff < tmp:  # n/2により近い整数を発見したなら、更新する
            r = e
            tmp = diff
    ans = "{} {}".format(max_a, r)
    return ans


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

-    if N == 2: -        return "{} {}".format(max(A), min(A)) -    import numpy - -    max_a = max(A) -    tmp = max_a / 2 -    idx = numpy.abs(numpy.asarray(A) - tmp).argmin() -    ans = "{} {}".format(max_a, A[idx]) +    max_a = max(A)  # comb(n,r)のnをこの値以外にする理由はない +    half = max_a / 2  # この値に最も近い整数をcomb(n,r)のrとする +    r = -1 +    tmp = float("inf")  # halfとの差の絶対値 +    for e in A: +        if e == max_a: +            continue  # nと同じものを選んではいけない +        diff = abs(e - half) +        if diff < tmp:  # n/2により近い整数を発見したなら、更新する +            r = e +            tmp = diff +    ans = "{} {}".format(max_a, r)