import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        System.out.println(result);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        System.out.println(result);
    }
} Main public static void main(String[] args) throws Exception {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        System.out.println(result);
    } main {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        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 long result = 1; result 1 long max = (long)Math.pow(10,18); max (long)Math.pow(10,18) Math.pow Math 10 18 for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        } int i = 0; int i = 0; i 0 i < N i N ++i ++i i {
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        } {
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        } A[i] = sc.nextLong() A[i] A i sc.nextLong() sc.nextLong sc if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            } A[i] == 0 A[i] A i 0 {
                System.out.println(0);
                System.exit(0);
            } System.out.println(0) System.out.println System.out System System.out 0 System.exit(0) System.exit System 0 Arrays.sort(A) Arrays.sort Arrays A for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        } int i = 0; int i = 0; i 0 i < N i N ++i ++i i {
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        } {
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        } if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            } A[i] > max/result A[i] A i max/result max result { //上限を超えそうなら終了
               result = -1;
            } result = -1 result -1 1 { //超えなければ乗算を続行
                result *= A[i];
            } result *= A[i] result A[i] A i 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) throws Exception {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        System.out.println(result);
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        System.out.println(result);
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        //値を取得
        Scanner sc = new Scanner(System.in);
        int N= sc.nextInt();
        long[] A = new long[N];
        long result = 1;    //計算結果を格納
        long max = (long)Math.pow(10,18);   //上限
        
        for (int i = 0; i < N; ++i){
            A[i] = sc.nextLong();
            //0が含まれている場合は何を掛けても0になるため、ここで終了
            if (A[i] == 0){
                System.out.println(0);
                System.exit(0);
            }
        }
        
        //配列を昇順にソート
        Arrays.sort(A);
        
        //各要素を順番に乗算する
        for (int i = 0; i < N; ++i){
            
            if (A[i] > max/result){ //上限を超えそうなら終了
               result = -1;
            } else{ //超えなければ乗算を続行
                result *= A[i];
            }
        }
        
        //出力
        System.out.println(result);
    }
}