#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=100005;
typedef long long ll;
int n,m,len,a[N],b[N],ans[N],pos[N],last[N];
ll f[N],prod[N];
char s[10];
void dp(int l,int r){
	if(l>=r){
		return;
	}
	prod[l-1]=1;
	for(int i=l;i<=r;i++){
		prod[i]=prod[i-1]*a[i];
		if(prod[i]>=1e16){
			while(l<r&&a[l]==1){
				ans[l++]=1;
			}
			while(l<r&&a[r]==1){
				ans[--r]=1;
			}
			for(int j=l;j<r;j++){
				ans[j]=2;
			}
			return;
		}
	}
	b[0]=0;
	for(int i=l;i<=r;i++){
		if(a[i]==1){
			f[i]=f[i-1]+1;
			last[i]=i;
		}else{
			b[++b[0]]=i;
			for(int j=1;j<=b[0];j++){
				if(f[i]<=f[b[j]-1]+prod[i]/prod[b[j]-1]){
					f[i]=f[b[j]-1]+prod[i]/prod[b[j]-1];
					last[i]=b[j];
				}
			}
		}
	}
	while(r>l){
		ans[last[r]-1]=1;
		for(int i=last[r];i<r;i++){
			ans[i]=2;
		}
		r=last[r]-1;
	}
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	scanf("%s",s);
	len=strlen(s);
	if(len==1){
		for(int i=1;i<n;i++){
			printf("%d%c",a[i],s[0]);
		}
		printf("%d\n",a[n]);
	}else if(len==3||(s[0]!='-'&&s[1]!='-')){
		pos[++m]=0;
		for(int i=1;i<=n;i++){
			if(!a[i]){
				pos[++m]=i;
			}
		}
		pos[++m]=n+1;
		for(int i=1;i<m;i++){
			ans[pos[i]]=1;
			ans[pos[i+1]-1]=1;
			dp(pos[i]+1,pos[i+1]-1);
		}
		for(int i=1;i<n;i++){
			printf("%d%c",a[i],ans[i]==1?'+':'*');
		}
		printf("%d\n",a[n]);
	}else if(s[0]!='+'&&s[1]!='+'){
		for(int i=1;i<=n;i++){
			if(!a[i]){
				m=i;
				break;
			}
		}
		if(!m){
			for(int i=1;i<n;i++){
				printf("%d%c",a[i],'*');
			}
			printf("%d\n",a[n]);
		}else{
			for(int i=1;i<n;i++){
				if(i==m-1){
					printf("%d%c",a[i],'-');
				}else{
					printf("%d%c",a[i],'*');
				}
			}
			printf("%d\n",a[n]);
		}
	}else{
		for(int i=1;i<n;i++){
			printf("%d%c",a[i],'+');
		}
		printf("%d\n",a[n]);
	}
	return 0;
}