We have N clocks. The hand of the i-th clock (1≤i≤N) rotates through 360° in exactly T_i seconds.
Initially, the hand of every clock stands still, pointing directly upward.
Now, Dolphin starts all the clocks simultaneously.
In how many seconds will the hand of every clock point directly upward again?

Constraints

* 1≤N≤100
* 1≤T_i≤10^{18}
* All input values are integers.
* The correct answer is at most 10^{18} seconds.

Input

Input is given from Standard Input in the following format:


N
T_1
:
T_N


Output

Print the number of seconds after which the hand of every clock point directly upward again.

Examples

Input

2
2
3


Output

6


Input

5
2
5
10
1000000000000000000
1000000000000000000


Output

1000000000000000000
import java.util.*;
import java.math.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    long valueLCM = 0;
    if(N==1){
      System.out.println(sc.nextLong());
      return;
    }
    ArrayList<Long> list = new ArrayList<>();
    for(int i=0;i<N;i++){
      list.add(sc.nextLong());
    }
    for(int i=0; i<list.size()-1; i++) {
       if(i==0){
         valueLCM = calcLCM(list.get(i),list.get(i+1));
       }else{
         valueLCM = calcLCM(valueLCM,list.get(i+1));
       }
    }    
    System.out.println(valueLCM);
  }
  
  
   private static long calcLCM(long val1, long val2) {
        long maxValue = Math.max(val1, val2);
        long minValue = Math.min(val1, val2);
        long val3;
        if(minValue==0) return maxValue;
        long temp;
        while( (temp=maxValue%minValue)!=0 ) {
            maxValue=minValue;
            minValue=temp;
        }
        //最大公約数でval1,val2を割って、小さいほうにじゃないほうvalをかければオーバーフローしない
        long val1d=val1/minValue;
        long val2d=val2/minValue;
     if(val1d>=val2d){
       return val2d*val1;
     }else{
       return val1d*val2;
     }
  }
  
}
