#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma comment(linker, "/STACK: 20000000")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
long long int mulmod(long long int a, long long int b, long long int mod) {
  a %= mod, b %= mod;
  return (a * b) % mod;
}
long long int expmod(long long int b, long long int e, long long int m) {
  if (!e) return 1;
  long long int q = expmod(b, e / 2, m);
  q = mulmod(q, q, m);
  return e & 1 ? mulmod(b, q, m) : q;
}
long long int inverso_mod(long long int num, long long int mod) {
  return expmod(num, mod - 2ll, mod);
}
long long int P = 10, MOD = 35748289;
void solve(vector<long long int> &H_sum, long long int first,
           long long int second, string &s) {
  if ((first <= 0) || (second <= 0)) return;
  if ((first + second) >= s.size()) return;
  long long int rest = s.size() - (first + second);
  long long int hash_first = H_sum[first - 1];
  long long int hash_second = H_sum[first + second - 1] - H_sum[first - 1];
  hash_second = ((hash_second % MOD) + MOD) % MOD;
  long long int hash_rest = H_sum.back() - H_sum[first + second - 1];
  hash_rest = ((hash_rest % MOD) + MOD) % MOD;
  hash_second *= inverso_mod(expmod(P, rest, MOD), MOD);
  hash_second = ((hash_second % MOD) + MOD) % MOD;
  hash_first *= inverso_mod(expmod(P, rest + second, MOD), MOD);
  hash_first = ((hash_first % MOD) + MOD) % MOD;
  if ((hash_first + hash_second) % MOD == hash_rest) {
    if ((s[first] == '0') && (second > 1)) return;
    if ((s[first + second] == '0') && (rest > 1)) return;
    cout << s.substr(0, first) << "+" << s.substr(first, second) << "="
         << s.substr(first + second, s.size() - first - second) << endl;
    exit(0);
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  string s;
  cin >> s;
  long long int n = s.size();
  vector<long long int> H(s.size());
  long long int POW = P;
  for (long long int i = n - 1; i >= 0; i--) {
    H[i] = ((s[i] - '0') * POW) % MOD;
    POW *= P;
    POW %= MOD;
  }
  vector<long long int> H_sum(H.size());
  H_sum[0] = H[0];
  for (long long int i = 1; i < H_sum.size(); i++)
    H_sum[i] = (H_sum[i - 1] + H[i]) % MOD;
  for (long long int length = n; length > 0; length--) {
    long long int first = length, second = n - first - length;
    solve(H_sum, first, second, s);
    solve(H_sum, second, first, s);
    first--;
    second++;
    solve(H_sum, first, second, s);
    solve(H_sum, second, first, s);
  }
  assert(false);
}
