#include #define rep(i,n) for(int i=0; i<(int)(n); i++) using namespace std; using LL = long long; using P = pair; vector A; int ans; void dfs(int K, int div){ if(div==0){ ans=max(ans,K%A[div]); return; } rep(i,div) dfs(K%A[div],i); } int main(){ int N, K; cin >> N >> K; A.resize(N); rep(i,N) cin >> A[i]; sort(A.begin(),A.end()); rep(i,N) dfs(K,i); cout << ans << endl; return 0; }