#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 1;
string s; int n;
string pre; int nex;
int dp[N][5001], f[N][5001];
vector<int> q;
int main(){
cin >> s;
for(int i = 0; i < s.size(); ++i)if(s[i] == '=')n = i;
pre = ' ' + s.substr(0, n); nex = stoi(s.substr(n + 1, s.size() - n - 1));
memset(dp, 127, sizeof(dp)); dp[0][0] = 0;
for(int i = 1; i <= n; ++i){
int tp = 0, x = 1;
for(int j = i; j >= 1; --j){
tp += (pre[j] - '0') * x, x *= 10;
if(tp > nex)break;
for(int k = nex; k >= tp; --k){
dp[i][k] = min(dp[i][k], dp[j - 1][k - tp] + 1);
if(dp[j - 1][k - tp] + 1 == dp[i][k]){
f[i][k] = j;
}
}
}
}
int now = n; int zzz = nex;
while(now){
int pos = f[now][nex]; q.push_back(pos);
int tp = stoi(pre.substr(pos, now - pos + 1));
now = pos - 1; nex -= tp;
}
sort(q.begin(), q.end()); int p = 1; string ans = "";
for(int i = 1; i <= n; ++i){
ans += pre[i];
if(i + 1 <= n && i + 1 == q[p]){
ans += '+'; ++p;
}
}
ans += "=" + to_string(zzz);
cout << ans << '\n';
return 0;
}