#ifndef LOCAL #include using namespace std; #define debug(...) (void(0)) #else #include "algo/debug.h" #endif void solve() { int N, K; cin >> N >> K; vector A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } int sol = [&]() -> int { int ans = 0; int amin = 1e9; for (int i = 0; i < N; i++) amin = min(amin, A[i]); for (unsigned bit = 0; bit < (1u << N); bit++) { vector X; bool f = false; for (int i = 0; i < N; i++) if (bit >> i & 1) { X.push_back(A[i]); f |= A[i] == amin; } if (!f) X.push_back(amin); sort(X.begin(), X.end(), greater<>{}); int cur = K; for (unsigned i = 0; i < X.size(); i++) cur %= X[i]; ans = max(ans, cur); } return ans; }(); cout << sol << endl; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int tt = 1; // std::cin >> tt; while (tt--) { solve(); } }