#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; map , bool> memo; int total; vector a; vector ans; bool rec(vector p, int val) { if (memo.find(p) != memo.end()) return memo[p]; if (p.size() == a.size()-1) { if (val == total) { ans = p; return true; } return false; } if (val >= total) return false; p.push_back('+'); if (rec(p, val+a[p.size()])) { p.pop_back(); return memo[p]=true; } p.pop_back(); p.push_back('*'); if (rec(p, val*a[p.size()])) { p.pop_back(); return memo[p]=true; } return false; } int main() { int n; cin >> n; cin >> total; for (int i = 0; i < n; i++) { int x; cin >> x; a.push_back(x); } vector p; rec(p, a[0]); for (int i = 0; i < ans.size(); i++) cout << ans[i]; cout << endl; }