#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; using mint=modint998244353; int main() { int n; ll l; cin>>n>>l; int w[22]; for(int i=0; i>w[i]; sort(w, w+n, greater()); int w0=w[0]; const int INF=1e9; vector d(w0, INF); d[0]=0; deque deq; deq.push_back(0); while(!deq.empty()){ int x=deq.front(); deq.pop_front(); for(int i=1; id[x]){ d[x+w[i]]=d[x]; deq.push_front(x+w[i]); } }else{ if(d[x+w[i]-w0]>d[x]+1){ d[x+w[i]-w0]=d[x]+1; deq.push_back(x+w[i]-w0); } } } } ll ans=0; for(int i=0; i