#include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { vector<LL> nums; int n, k; cin >> n >> k; LL a; cin >> a; for (LL i = 2; i <= sqrt(a); i++) { if (a % i == 0) { nums.emplace_back(i); if (i*i != a){ nums.emplace_back(a / i); } } } if (nums.empty()) { cout << 0 << endl; return 0; } vector<LL>::iterator it; for (LL q = 1; q < n; q++) { cin >> a; for (it = nums.begin(); it != nums.end();) { if (a % *it != 0) { it = nums.erase(it); } else it++; } if (nums.empty()) { cout << 0 << endl; return 0; } } for (LL j = k; j > 0; j--) { for (LL si = 0; si < nums.size(); si++) { if (j % nums[si] == 0) { cout << j << endl; return 0; } } } return 0; }