#include <bits/stdc++.h>

using namespace std;
using LL = long long;

const int MAX = 1e5 + 5;

void test_case() {
    int N;
    cin >> N;
    vector<int> a(N);
    for(int &x : a)
        cin >> x;
    string s;
    cin >> s;
    sort(s.begin(), s.end());
    if(s == "+-")
        s = "+";
    int ops = s.size();
    if(ops == 1) {
        for(int i = 0; i < N; ++i)
            cout << a[i] << (i < N - 1 ? s[0] : '\n');
        return;
    }
    if(ops == 3)
        s = "*+";
    if(s == "*-") {
        cout << a[0];
        for(int i = 1; i < N; ++i)
            cout << (a[i] == 0 ? '-' : '*') << a[i];
        return;
    }
    string sol(N + 1, '?');
    vector<LL> dp(N + 1);
    vector<int> dp_prev(N + 1, -1);
    auto solve = [&](int start, int end) -> void {
        while(start < end && a[start] == 1) {
            sol[start + 1] = '+';
            ++start;
        }
        while(start < end && a[end - 1] == 1) {
            sol[end - 1] = '+';
            --end;
        }
        if(start == end)
            return;
        int greater_product = 1;
        for(int i = start; i < end; ++i) {
            greater_product *= a[i];
            if(greater_product > MAX)
                break;
        }
        if(greater_product > MAX) {
            for(int i = start + 1; i < end; ++i)
                sol[i] = '*';
            return;
        }
        for(int i = start; i <= end; ++i) {
            dp[i] = 0;
            dp_prev[i] = -1;
        }
        for(int i = start; i < end; ++i) {
            if(a[i] == 1) {
                dp[i + 1] = dp[i] + 1;
                dp_prev[i + 1] = i;
                continue;
            }
            LL product = 1;
            for(int j = i; j >= start; --j) {
                product *= a[j];
                if(dp[j] + product > dp[i + 1]) {
                    dp[i + 1] = dp[j] + product;
                    dp_prev[i + 1] = j;
                }
            }
        }
        for(int curr = end; curr > start; curr = dp_prev[curr]) {
            for(int i = curr - 1; i > dp_prev[curr]; --i)
                sol[i] = '*';
            sol[dp_prev[curr]] = '+';
        }
    };
    for(int i = 0, j = 0; i < N; i = j) {
        while(j < N && (a[i] > 0) == (a[j] > 0))
            ++j;
        if(a[i] > 0)
            solve(i, j);
    }
    for(int i = 0; i < N; ++i)
        if(a[i] == 0)
            sol[i] = sol[i + 1] = '+';
    for(int i = 0; i < N; ++i)
        cout << a[i] << (i < N - 1 ? sol[i + 1] : '\n');
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int T = 1;
    while(T--)
        test_case();
}
