#include <bits/stdc++.h>
using namespace std;
const int N_mod = 5;
long long mod[] = {1000000007, 1000000009, 1054033, 1162907, 1239449};
string s;
int n;
long long hs[N_mod][1000007], pw[N_mod][1000007];
inline long long get(int l, int r, int md) {
  if (l == 0) return hs[md][r];
  return (hs[md][r] - hs[md][l - 1] * pw[md][r - l + 1] + mod[md] * mod[md]) %
         mod[md];
}
void check(int fs, int sec) {
  if (fs < 0 || sec >= n - 1 || fs >= sec) return;
  if (s[0] == '0' && fs != 0) return;
  if (s[fs + 1] == '0' && sec - fs > 1) return;
  if (s[sec + 1] == '0' && n - sec - 1 > 1) return;
  for (int i = 0; i < N_mod; i++) {
    long long cur = hs[i][fs];
    cur = cur + get(fs + 1, sec, i) - get(sec + 1, n - 1, i) + mod[i] * mod[i];
    cur %= mod[i];
    if (cur) return;
  }
  for (int i = 0; i < n; i++) {
    cout << s[i];
    if (i == fs)
      cout << '+';
    else if (i == sec)
      cout << '=';
  }
  exit(0);
}
int main() {
  ios_base::sync_with_stdio(0);
  for (int i = 0; i < N_mod; i++) pw[i][0] = 1;
  for (int i = 0; i < N_mod; i++) {
    for (int j = 1; j <= 1000000; j++) {
      pw[i][j] = (pw[i][j - 1] * 10LL) % mod[i];
    }
  }
  cin >> s;
  n = (int)s.length();
  for (int i = 0; i < N_mod; i++) {
    for (int pos = 0; pos < n; pos++) {
      if (pos == 0)
        hs[i][pos] = s[pos] - '0';
      else
        hs[i][pos] = (hs[i][pos - 1] * 10LL + s[pos] - '0') % mod[i];
    }
  }
  for (int i = n / 3; i <= (n + 1) / 2; i++) {
    int sec = n - i;
    check(i - 1, sec - 1);
    check(i - 2, sec - 1);
    check(sec - i - 1, sec - 1);
    check(sec - i, sec - 1);
  }
}
