#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<stdio.h>
using namespace std;
#define ll long long int
#define ull unsigned long long int
#define scanl(a) scanf("%lld",&a)
#define scanii(a,b) scanf("%d%d",&a,&b)
#define scaniii(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define scanll(a,b) scanf("%lld%lld",&a,&b)
#define scanlll(a,b,c) scanf("%lld%lld%lld",&a,&b,&c)
#define scani(a) scanf("%d",&a)
#define clr(a) memset(a,0,sizeof(a))
#define clr_(a) memset(a,-1,sizeof(a))
#define pb(a) push_back(a)
#define pii pair<int,int>
#define sqr(a) a*a
#define eps 1e-9
#define inf INT_MAX
#define pi acos(-1.0)
#define ff first
#define ss second
#define INF (ll)1e18
#define m_p make_pair
#define vsort(v) sort(v.begin(),v.end())
#define all(v) v.begin(),v.end()
#define UNIQUE(X) sort(all(X)) X.resize( unique( all(X)) - X.begin() )
int fx[]={0,0,-1,1,-1,1,1,-1};
int fy[]={1,-1,0,0,1,1,-1,-1};
ll lcm(ll a,ll b){return (a/__gcd(a,b))*b;}
ll bigmod(ll a,ll p,ll mod){ll ans=1;while(p){if(p&1)ans=ans*a%mod;a=a*a%mod;p>>=1;}return ans;}
ll power(ll x,ll n){if(n==0)return 1;else if(n%2==0){ll y=power(x,n/2);return y*y;}else return x*power(x,n-1);}
struct point{double x,y;point(){}point(double xx,double yy){x=xx;y=yy;}};
inline double Distance(point  a,point b){return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}
#ifdef shaft
     #define debug(...) __f(#__VA_ARGS__, __VA_ARGS__)
    template < typename Arg1 >
    void __f(const char* name, Arg1&& arg1){
        cerr << name << " is " << arg1 << std::endl;
    }
    template < typename Arg1, typename... Args>
    void __f(const char* names, Arg1&& arg1, Args&&... args){
        const char* comma = strchr(names+1, ',');
        cerr.write(names, comma - names) << " is " << arg1 <<endl;
        __f(comma+1, args...);
    }
#else
    #define debug(...)
#endif
const int N=(int)1e6;
const ll mod=(ll)1e9+7;
 int a , b ,c ,d;
 bool check(int n,int pos){return (bool)(n & (1<<pos));}///return pos bit
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    #ifdef shaft
      //  freopen("in.txt","r",stdin);
        ///freopen("out.txt","w",stdout);
    #endif ///shaft
    string s;
    cin>>s;
    a = s[0] -'0';
    b = s[1] -'0';
    c = s[2] -'0';
    d = s[3] -'0';
    vector<int>v;
    for(int i = 0 ; i < 8 ; i++){
        int x = i ;
        v.clear();
        while(v.size() < 3){
            v.pb(x % 2);
            x /=2;
        }
        string s = "";
        int res = a;
        s += (char)( a + '0');
        if(v.back() == 0) {
                res += b;
                s+='+';
        }
        else {
                res -= b;
                s += '-';
        }
         s += (char)( b + '0');
        v.pop_back();
        if(v.back() == 0) {
                res += c;
                s+='+';
        }
        else {
                res -= c;
                s += '-';
        }
        v.pop_back();
         s += (char)( c + '0');
        if(v.back() == 0) {
                res += d;
                s+='+';
        }
        else {
                res -= d;
                s += '-';
        }
         s += (char)( d + '0');
         debug(res);
        if(res == 7){
            cout<<s<<"=7"<<endl;
            return 0;
        }
    }
    return 0;
}



Measured memory_bytes: 256