#include using namespace std; typedef long long ll; typedef pair pii; typedef vector vi; typedef vector vl; int main() { int N; ll K; cin >> N >> K; vector a(N, 0); for (int i = 0; i < N; i++) { cin >> a[i]; } vector> dp(1 << N, vector(N, 0)); for (int i = 0; i < N; i++) { dp[0][i] = K; } for (ll i = 1; i < (1 << N); ++i) { int cnt = 0; ll Q = i; while (Q) { if (Q & 1) { for (int k = 0; k < N; k++) { dp[i][cnt] = max(dp[i][cnt], dp[i ^ (1 << cnt)][k] % a[cnt]); } } cnt++; Q >>= 1; } } long long ans = 0; for (int i = 0; i < N; i++) { ans = max(ans, dp[(1 << N)-1][i]); } cout << ans << endl; /*for i in range(1,2**N): cnt=0 P=i Q=i while Q: if Q&1: for k in range(N): dp[i][cnt]=max(dp[i][cnt],dp[i^2**cnt][k]%A[cnt]) cnt+=1 Q>>=1 ans=max(dp[-1]) print(ans) ) */ }