1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdio>
#include <vector>

typedef long long LL;

using namespace std;

bool check(vector <LL> vec, LL val) {
	while(val > 1) {
		LL bef = val;
		for(int i = 0; i < vec.size(); ++i) {
			if(val % vec[i] == 0) {
//				printf("%lld\t| %lld\n", val, vec[i]);
				val /= vec[i];
			}
		}
		if(val == bef) {
			return false;
		}
	}
	return true;
}

int main() {
	LL k, N;
	scanf("%lld %lld", &k, &N);
	vector < LL > vec(k);
	for(int i = 0; i < k; ++i) {
		scanf("%lld", &vec[i]);
	}
	for(LL i = N; i >= 0; --i) {
		if(check(vec, i)) {
			printf("%lld\n", i);
			return 0;
		}
	}
}