#include using namespace std; int main(){ int n; long long L; cin >> n >> L; vectorw(n); for(int i=0;i> w[i]; sort(w.begin(), w.end()); vectordp(w[0], 1e18); dp[0] = 0; priority_queue>que; que.emplace(0, 0); while(!que.empty()){ auto q = que.top(); que.pop(); long long zan = -q.first; int v = q.second; if(dp[v] != zan) continue; for(int i=1;i zan+w[i]){ dp[(w[i]+v)%w[0]] = zan+w[i]; que.emplace(-zan-w[i], (w[i]+v)%w[0]); } } } long long ans = 0; for(int i=0;i