#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int n;  // Количество пар досок
    cin >> n;

    vector<unsigned long long> lengths(n);  // Длина каждой пары досок

    // Чтение значений
    for (int i = 0; i < n; ++i) {
        cin >> lengths[i];
    }

    // Нахождение минимума и максимума среди пар досок
    unsigned long long min_length = *min_element(lengths.begin(), lengths.end());
    unsigned long long max_length = *max_element(lengths.begin(), lengths.end());

    // Вычисление площадей
    unsigned long long min_area = min_length * min_length;      // Минусовая площадь (самый короткий вариант)
    unsigned long long max_area = min_length * max_length;     // Максимальная площадь (комбинация самой короткой и длинной стороны)

    // Вывод результата
    cout << min_area << ' ' << max_area << '\\n';

    return 0;
}