#include #define rep(i,n) for(int i=0;i<(int)n;i++) #define all(c) (c).begin(),(c).end() #define mp make_pair #define pb push_back #define each(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++) #define dbg(x) cerr<<__LINE__<<": "<<#x<<" = "<<(x)< vi; typedef pair pi; const int inf = (int)1e9; const double INF = 1e12, EPS = 1e-9; const int MX = 110000; int n, total, a[50], dp[51][MX]; int main(){ cin >> n >> total; rep(i, n) cin >> a[i]; dp[0][a[0]] = -1; for(int i = 1; i < n; i++) rep(j, MX) if(dp[i - 1][j]){ if(j + a[i] < MX) dp[i][j + a[i]] = max(dp[i][j + a[i]], 2); if(j * a[i] < MX) dp[i][j * a[i]] = max(dp[i][j * a[i]], 1); } string ans; for(int i = n - 1; i > 0; i--){ ans += dp[i][total] == 2 ? "+" : "*"; total = dp[i][total] == 2 ? total - a[i] : total / a[i]; } dbg(total); reverse(all(ans)); cout << ans << endl; return 0; }