#include #define REP(i,n) for(int i=0,i##_len=(n);i>N>>T; vector> prev(N+1,vector(T+1,-1)); vector A(N); REP(i, N) cin >> A[i]; prev[1][A[0]]=0; REP(i,N){ REP(j,T+1) if(prev[i][j]!=-1){ if(j+A[i]<=T) prev[i+1][j+A[i]]=j; } REP(j,T+1) if(prev[i][j]!=-1){ if(j*A[i]<=T&&prev[i+1][j]==-1) prev[i+1][j*A[i]]=j; } } int j=T; string ans; for(int i=N;i>1;--i){ int k=prev[i][j]; if(j==A[i-1]+k) ans+='+'; else ans+='*'; j=k; } reverse(All(ans)); cout<