#include<stdio.h>
//小さい順にソート
long long c[100002];
void merge(int i,int j,long long *s){
  if(i!=j){
    merge(i,(i+j)/2,s);
    merge((i+j)/2+1,j,s);
    int a=i,b=(i+j)/2+1;
    int d;
    for(d=i;d<=j;d++){
      if((i+j)/2<a){
        c[d]=s[b];
        b++;
      }
      else if(j<b){
        c[d]=s[a];
        a++;
      }
      else if(s[a]<s[b]){
        c[d]=s[a];
        a++;
      }
      else{
        c[d]=s[b];
        b++;
      }
    }
    for(d=i;d<=j;d++)
      s[d]=c[d];
  }
}

int main(){
  int n,i;
  long long num=1;
  scanf("%d",&n);
  long long a[n+1];
  for(i=0;i<n;i++)
    scanf("%lld",&a[i]);
  merge(0,n-1,a);
  if(a[0]==0){
    puts("0");
    return 0;
  }
  for(i=0;i<n;i++){
    if(1000000000000000000/num<a[i]){
      printf("-1\n");
      return 0;
    }
    num*=a[i];
  }
  printf("%lld\n",num);
  return 0;
}
