import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    }
} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    } main {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc long a[] = new long[n]; a new long[n] n for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            a[i] = sc.nextLong();
        } {
            a[i] = sc.nextLong();
        } a[i] = sc.nextLong() a[i] a i sc.nextLong() sc.nextLong sc Arrays.sort(a) Arrays.sort Arrays a final long K = (long) Math.pow(10, 18); K (long) Math.pow(10, 18) Math.pow Math 10 18 if (a[0] == 0) {
            System.out.println(0);
            return;
        } a[0] == 0 a[0] a 0 0 {
            System.out.println(0);
            return;
        } System.out.println(0) System.out.println System.out System System.out 0 return; long result = 1; result 1 for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        } long l a {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        } {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        } if (result > K / l) {
                System.out.println(-1);
                return;
            } result > K / l result K / l K l {
                System.out.println(-1);
                return;
            } System.out.println(-1) System.out.println System.out System System.out -1 1 return; result *= l result l System.out.println(result) System.out.println System.out System System.out result String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    }
} Main
import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //入力
      	int n = sc.nextInt();
        long a[] = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
        }
 		//0を見つけたいので昇順にソート
        Arrays.sort(a);
 		//10の18乗
        final long K = (long) Math.pow(10, 18);
 		//0があるとき
        if (a[0] == 0) {
            System.out.println(0);
            return;
        }
 
        long result = 1;
      	//取り出した値を格納する変数:順に取り出したい配列
        for (long l : a) {
            if (result > K / l) {
                System.out.println(-1);
                return;
            }
          //取り出した値を掛ける
            result *= l;
        }
        System.out.println(result);
 
    }
}