// AtCoder150 C

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <assert.h>
#include <string.h>
#include <memory.h>
#include <malloc.h>
#include <stdlib.h>
#include <ctype.h>

// qsortで用いる比較用関数．*a<*bならaが先になる．
int compare(const void* a, const void* b) {
    return *(int*)a - *(int*)b;
}

int revcompare(const void* a, const void* b) {
    return *(int*)b- *(int*)a;
}

double dmax(double x, double y){
    if(x < y) return y;
    return x;
}

int main(void)
{
    int i,j,n;
    long long int* a;

    scanf("%d", &n);
    a = (long long int*)malloc(sizeof(long long int) * n);
    for(i=0;i<n;i++){
        scanf("%lld", &a[i]);
        //printf("%lld ", a[i]);
        if(a[i] == 0){
            printf("0");
            return 0;
        }
    }

    long long int mul = 1;
    for(i=0;i<n;i++){
        mul*=a[i];
        if(mul > pow(10,18)){
            printf("-1");
            return 0;
        }
    }
    printf("%lld", mul);
    
    return 0;

}