#include <bits/stdc++.h>
using namespace std;
long long const inf = 1e9 + 7, mod = 1e9 + 7, p = 10;
long long const N = 270805;
long long Pow[1000005];
long long fastpow(long long x, long long y, long long p) {
  long long ans = 1;
  x %= p;
  if (x == 0) return 0;
  while (y) {
    if (y & 1) ans = (ans * x) % p;
    y >>= 1;
    x = (x * x) % p;
  }
  return ans;
}
void hashing(string &s, long long a[]) {
  a[0] = 0;
  for (long long i = 1; i <= s.length(); i++) {
    a[i] = ((a[i - 1] * p) % mod + s[i - 1] - '0') % mod;
  }
}
long long subhash(long long a[], long long l, long long r) {
  long long d = r - l + 1;
  long long ans = (a[r + 1] - a[l] * Pow[d]) % mod;
  while (ans < 0) ans += mod;
  return ans;
}
string s;
long long len[3];
long long hashcp[1000005];
bool check(string &s, long long a[], long long pos, long long i, long long j) {
  len[2] = s.length() - pos;
  len[i] = len[2] - j;
  len[1 - i] = s.length() - len[2] - len[i];
  long long h[3];
  h[0] = subhash(a, 0, len[0] - 1);
  h[1] = subhash(a, len[0], len[0] + len[1] - 1);
  h[2] = subhash(a, len[0] + len[1], len[0] + len[1] + len[2] - 1);
  if ((h[0] + h[1]) % mod == h[2]) {
    if ((len[0] > 1 && s[0] == '0') || (len[1] > 1 && s[len[0]] == '0') ||
        (len[2] > 1 && s[len[0] + len[1]] == '0') || len[0] < 1 || len[1] < 1 ||
        len[2] < 1)
      return false;
    s.insert(len[0], 1, '+');
    s.insert(len[0] + len[1] + 1, 1, '=');
    cout << s << "\n";
    return true;
  }
  return false;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> s;
  long long n = s.length();
  Pow[0] = 1;
  for (long long i = 1; i <= n; i++) {
    Pow[i] = (Pow[i - 1] * p) % mod;
  }
  hashing(s, hashcp);
  for (long long i = 0; i <= 1; i++) {
    for (long long j = 0; j <= 1; j++) {
      for (long long p = (n + 1) / 2; p < n; p++) {
        if (check(s, hashcp, p, i, j)) return 0;
      }
    }
  }
}
