#include<queue>
#include<list>
#include<algorithm>
#include<numeric>
#include<cstdio>
#include<vector>
#include <iostream>
#include<string>
#include<stack>
#define INT_MAX (1<<30)
using namespace std;
int compute(string s){
int t=0,t2;
int res=0;
int i=0;
int flag=-1;
while(isdigit(s[i])){
res=10*res+(s[i]-'0');
i++;
}
while(i<s.length()){
if(s[i]=='+'){flag=0;}
else {flag=1;}
t=0;
i++;
while(isdigit(s[i])){
t=10*t+(s[i]-'0');
i++;
}
if(!flag) res=res+t;
else if(flag==1) res=res-t;
}
return res;
}
void sel(int* arr,int x,int ind,int n){
if(ind==n){
string s="1";
for(int i=0;i<n;++i)
{ if(arr[i]==0){s+="+";}
else if(arr[i]==1) {s+="-";}
s+='2'+i;
}
if(compute(s)==x)
cout<<s<<endl;
return ;}
for(arr[ind]=-1;arr[ind]<=1;++arr[ind]){
sel(arr,x,ind+1,n);
}
}
int main(){
int arr[8];
int x=5;
sel(arr,x,0,8);
return 0;
}