#include <bits/stdc++.h>
using namespace std;
const int MAXN=65;
const long long INF=1000000000000000000LL;
int n;
long long k[MAXN];
long long calc(long long A, int x){
    long long mask=1LL<<x; A++;
    long long tmp=A/mask, ans=(tmp/2)*mask;
    if(tmp&1LL) ans+=A&(mask-1);
    return ans;
}
bool check(long long A, long long B){
    for(int i=n-1; i>=0; i--){
        if(calc(B,i)-calc(A-1,i)!=k[i]){
            return false;
        }
    }
    return true;
}
long long solve(long long W){
    long long A=0, B=-1, C=-1;
    for(int i=n-1; i>=0; i--){
        if(k[i]>W) return -1;
        if(k[i]==0){
            A|=0LL<<i;
        }
        else if(k[i]==W){
            A|=1LL<<i;
        }
        else{
            B=A|(1LL<<i);
            C=B+k[i]-1;
            A=C-W+1;
            break;
        }
    }
    if(C==-1) C=A;
    if(A==0||C>INF) return -1;
    if(A+W-1==C&&check(A,C)){
        return A;
    }
    return -1;
}
int main(){
    while(~scanf("%d",&n)&&n){
        for(int i=0; i<n; i++){
            scanf("%lld",&k[i]);
        }
        long long A=-1, B;
        for(long long W=2*k[0]-1; W<=2*k[0]+1; W++){
            if(W<0) continue;
            long long ret=solve(W);
            if(ret!=-1){
                if(A!=-1){
                    puts("Many");
                    goto failed;
                }
                A=ret; B=ret+W-1;
            }
        }
        if(A==-1){
            puts("None");
        }
        else{
            printf("%lld %lld\n",A,B);
        }
        failed:;
    }
    return 0;
}