#include using namespace std; //#include //using namespace atcoder; using ll=long long; using Graph=vector>; #define MAX 1000000 //#define MOD 1000000007 #define MOD 998244353 //#define INF 1000000000 #define INF 1000000000000000000 int main(){ int N; int S; cin>>N>>S; vector A(N); for(int i=0;i>A[i]; } vector> dp(N,vector(S+1,false)); dp[N-1][S]=true; for(int i=N-2;i>=0;i--){ for(int j=0;j<=S;j++){ if(j+A[i+1]<=S){ dp[i][j]=dp[i][j]|dp[i+1][j+A[i+1]]; } if(j*A[i+1]<=S){ dp[i][j]=dp[i][j]|dp[i+1][j*A[i+1]]; } } } assert(dp[0][A[0]]); int j=A[0]; //cout<<"hello"<