#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
inline void read(int &x){
	x=0;
	char Cget=getchar();
	while(Cget>'9'||Cget<'0')
		Cget=getchar();
	while(Cget>='0'&&Cget<='9'){
		x=x*10+Cget-'0';
		Cget=getchar();
	}
}
typedef long long ll;
const int N=1e5+5;
int n,a[N],m,has[4],g[N],f[N],sum[N],q[N];
char op[5];
void solve(int x){
	if(x==0)
		return;
	solve(g[x]);
	printf("%d",a[g[x]+1]);
	for(int i=g[x]+2;i<=x;i++)
		printf("*%d",a[i]);
	if(x!=n)
		printf("+");
}
void solve(){
	int tot=0,flag=0;
	for(int i=1;i<=n;i++){
		f[i]=f[i-1]+a[i];
		g[i]=i-1;
		if(!a[i]){
			tot=0;
			flag=0;
		}
		else{
			if(a[i]!=1){
				for(int v=1;v<=tot;v++){
					if(sum[v]*a[i]>=2*n){
						flag=1;
						break;
					}
					else
						sum[v]*=a[i];
					if(f[q[v]]+sum[v]>f[i]){
						f[i]=f[q[v]]+sum[v];
						g[i]=q[v];
					}
				}
				q[++tot]=i-1,sum[tot]=a[i];
				if(flag)
					g[i]=q[1];
			}
		}
	}
	solve(n);
}
int main(){
	//freopen("data.txt","r",stdin);
	read(n);
	for(int i=1;i<=n;i++)
		read(a[i]);
	scanf("%s",op);
	m=strlen(op);
	for(int i=0;i<m;i++)
		if(op[i]=='+')
			has[0]=1;
		else if(op[i]=='-')
			has[1]=1;
		else
			has[2]=1;
	if(has[0]&&has[2]&&has[1]){
		solve();
	}
	else if(has[0]&&has[1]){
		for(int i=1;i<n;i++)
			printf("%d+",a[i]);
		printf("%d\n",a[n]);
	}
	else if(has[0]&&has[2]){
		solve();
	}
	else if(has[1]&&has[2]){
		for(int i=1;i<n;i++){
			printf("%d",a[i]);
			if(a[i+1]==0)
				putchar('-');
			else
				putchar('*');
		}
		printf("%d\n",a[n]);
	}
	else{
		for(int i=1;i<n;i++){
			printf("%d",a[i]);
			if(has[0])
				putchar('+');
			else if(has[1])
				putchar('-');
			else
				putchar('*');
		}
		printf("%d\n",a[n]);
	}
	return 0;
}
