/*令L(i),R(i)表示第i轮过后的最小人数和最大人数。

令X(i)和Y(i)表示区间[L(i),R(i)]中最小的a[i]倍数和最大的a[i]倍数。

L(i-1)=X(i)，R(i-1)=Y(i)+a[i]-1。

X(i)=L(i)/a[i]（上取整），Y(i)=R(i)/a[i]（下取整）。

答案为L(0),R(0)。*/
#include<cstdio>
int n,a[100010];
long long L=2,R=2;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=n;i>=1;i--){
        L=((L-1)/a[i]+1)*a[i];
        R=R/a[i]*a[i]+a[i]-1;
    }
    if(L>R)printf("-1");
    else printf("%lld %lld",L,R);
    return 0;
}