#include <bits/stdc++.h>
using namespace std;
string tostr(int n) {
  stringstream rr;
  rr << n;
  return rr.str();
}
const int mxn = 1e6 + 9;
const long double eps = 1e-9;
string s;
long long n, hs[2][mxn], pw[2][mxn], mod[2] = {1000000005, 1000000007};
void create_hash() {
  long long i, j, k, id;
  for (id = 0; id < 2; id++) {
    pw[id][0] = 1;
    for (i = 1; i <= n; i++) pw[id][i] = (pw[id][i - 1] * 10) % mod[id];
  }
  for (id = 0; id < 2; id++) {
    for (i = 1; i <= n; i++) {
      hs[id][i] = ((hs[id][i - 1] * 10) % mod[id] + s[i - 1] - '0') % mod[id];
    }
  }
}
bool yo(long long a, long long b, long long c) {
  if (a == 0 || b == 0 || c == 0) return 0;
  if (max(a, b) > c) return 0;
  if (s[a] == '0' && b > 1 || s[a + b] == '0' && c > 1) return 0;
  long long id, A, B, C;
  for (id = 0; id < 2; id++) {
    A = hs[id][a] % mod[id];
    B = (mod[id] + hs[id][a + b] - (hs[id][a] * pw[id][b]) % mod[id]) % mod[id];
    C = (mod[id] + hs[id][a + b + c] - (hs[id][a + b] * pw[id][c]) % mod[id]) %
        mod[id];
    if ((A + B) % mod[id] != C % mod[id]) return 0;
  }
  return 1;
}
void print(long long a, long long b, long long c) {
  for (long long i = 0; i < n; i++) {
    cout << s[i];
    if (i == a - 1) cout << '+';
    if (i == a + b - 1) cout << '=';
  }
  cout << "\n";
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL);
  long long i, j, k, m, a, b, c;
  cin >> s;
  n = s.size();
  create_hash();
  for (c = 1; c < n; c++) {
    a = c, b = n - a - c;
    if (yo(a, b, c)) return print(a, b, c), 0;
    a = c - 1, b = n - a - c;
    if (yo(a, b, c)) return print(a, b, c), 0;
    b = c, a = n - b - c;
    if (yo(a, b, c)) return print(a, b, c), 0;
    b = c - 1, a = n - b - c;
    if (yo(a, b, c)) return print(a, b, c), 0;
  }
  return 0;
}
