#include #include #include #include #include #include #include #include #include #include #include #include using ll = long long; using namespace std; const ll MOD = 1e9 + 7; int N, Total; int A[51]; int dp[51][100100]; string S; // bool operator<(const pair &a, const pair &b) // { // if (a.first == b.first) // return a.second < b.second; // return a.first < b.first; // }; void dfs(int cur, int v) { if (v > Total) return; if (cur == N) { if (v == Total) { cout << S << endl; exit(0); } return; } if (dp[cur][v]) return; dp[cur][v] = 1; S += "+"; dfs(cur + 1, v + A[cur]); S.pop_back(); S += "*"; dfs(cur + 1, v * A[cur]); S.pop_back(); } int main(void) { cin >> N >> Total; for (int i = 0; i < N; ++i) cin >> A[i]; dfs(1, A[0]); return 0; }