/*
TASK: abc
lANG: C++
*/

#include <iostream>
#include <string>

using namespace std;

string pw4[22] = {"1", "4", "16", "64", "256", "1024", "4096", "16384", "65536", "262144", "1048576", "4194304", "16777216", "67108864", "268435456", "1073741824", "4294967296", "17179869184", "68719476736", "274877906944", "1099511627776"};
string pw2[42] = {"1", "2", "4", "8", "16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192", "16384", "32768", "65536", "131072", "262144", "524288", "1048576", "2097152", "4194304", "8388608", "16777216", "33554432", "67108864", "134217728", "268435456", "536870912", "1073741824", "2147483648", "4294967296", "8589934592", "17179869184", "34359738368", "68719476736", "137438953472", "274877906944", "549755813888", "1099511627776"};
string a[1000];
string b[1000];
int n, maxs, sn;

void add (string a, string b, string &t) {
    int p[20] = {0}, q[20] = {0}, s[20] = {0};
    int i;
    string m;
    if (a.size() < b.size()) {
        swap(a, b);
    }
    for (i = a.size() - 1; i >= 0; i --) {
        p[i] = a[a.size() - 1 - i] - 48;
    }
    for (i = b.size() - 1; i >= 0; i --) {
        q[i] = b[b.size() - 1 - i] - 48;
    }
    int c = 0;
    int len = a.size();
    for (i = 0; i < a.size(); i ++) {
        s[i] = p[i] + q[i] + c;
        c = s[i] / 10;
        s[i] %= 10;
    }
    if (c > 0) {
        if (b.size() == a.size()) len++;
        s[i] += c;
    }
    t[len] = '\0';
    for (i = 0; i < len; i ++) {
        t[len - i - 1] = s[i] + 48;
    }
}

void del (string a, string &t) {
    int i = 0, j = 0;
    int d = 0;
    if (a[0] == 1) {
        i = 1;
        d = 10;
    }
    for (; i < a.size(); i ++) {
        d += a[i] - 48;
        t[j ++] = d / 2 + 48;
        d %= 2;
        d *= 10;
    }
    t[j] = '\0';
}

int main () {
    int i, j, f = 0;
    cin >> n;
    for (i = 0; i < n; i ++) {
        cin >> a[i];
    }
    sort (a, a + n);
    b[sn++] = a[0];
    maxs = a[0].size();
    for (i = 1; i < n; i ++) {
        f = 0;
        if (a[i].size() > maxs) maxs = a[i].size();
        if (a[i].size() >= b[sn - 1].size()) {
            int k = 0;
            while (b[sn - 1][k] == a[i][k]) {
                if (++ k == b[sn - 1].size()) {
                    f = 1;
                    break;
                }
            }
        }
        if (f == 0) b[sn++] = a[i];
    }
    string t = pw4[maxs - b[0].size()];
    for (i = 1; i < sn; i ++) add(t, pw4[maxs - b[i].size()], t);
    int ind = maxs * 2;
    while ((t[t.size() - 1] - 48) % 2 == 0) {
        del(t, t);
        ind --;
    }
    cout << t << " " << pw2[ind] << endl;
    return 0;
}
