#include <bits/stdc++.h>
using namespace std;
const int MAX_LEN = (int)1e6;
vector<int> MODS = {(int)1e9 + 7, (int)1e9 + 9};
int POT[2][MAX_LEN + 1];
int acum[2][MAX_LEN + 1];
void fix(string &str) {
  for (auto &c : str) {
    c -= '0';
  }
}
void undoFix(string &str) {
  for (auto &c : str) {
    c += '0';
  }
}
void initPots() {
  for (int k = 0; k < ((int)(MODS).size()); k++) {
    POT[k][0] = 1;
    for (int i = 1; i <= MAX_LEN; i++) {
      long long term = (long long)POT[k][i - 1] * 10;
      term %= MODS[k];
      POT[k][i] = term;
    }
  }
}
void initHashes(string str) {
  for (int k = 0; k < ((int)(MODS).size()); k++) {
    for (int i = 0; i < ((int)(str).size()); i++) {
      acum[k][i + 1] = (10LL * acum[k][i] + str[i]) % MODS[k];
    }
  }
}
int getHash(int lo, int hi, int id) {
  long long term = (long long)acum[id][lo] * POT[id][hi - lo + 1];
  term %= MODS[id];
  int ans = acum[id][hi + 1] - term;
  if (ans < 0) {
    ans += MODS[id];
  }
  return ans;
}
vector<int> getVectorHash(int lo, int hi) {
  vector<int> ans;
  for (int i = 0; i < ((int)(MODS).size()); i++) {
    ans.push_back(getHash(lo, hi, i));
  }
  return ans;
}
vector<int> getVectorHashSum(vector<int> vHashA, vector<int> vHashB) {
  vector<int> ans;
  for (int i = 0; i < ((int)(MODS).size()); i++) {
    int sum = vHashA[i] + vHashB[i];
    if (sum >= MODS[i]) {
      sum -= MODS[i];
    }
    ans.push_back(sum);
  }
  return ans;
}
bool verifyMatch(int lenA, int lenB, int lenC) {
  vector<int> vHashA = getVectorHash(0, lenA - 1);
  vector<int> vHashB = getVectorHash(lenA, lenA + lenB - 1);
  vector<int> vHashC = getVectorHash(lenA + lenB, lenA + lenB + lenC - 1);
  vector<int> vHashSumAB = getVectorHashSum(vHashA, vHashB);
  return vHashSumAB == vHashC;
}
void print(string &str, int a, int b, int c) {
  cout << str.substr(0, a) + "+" + str.substr(a, b) + "=" + str.substr(a + b)
       << '\n';
}
void search(string str) {
  int len = ((int)(str).size());
  for (int k = len / 3; k <= len - 2; k++) {
    for (int j = k - 1; j <= k; j++) {
      int i = len - j - k;
      if (i >= 1 && j >= 1 && k >= 1 && i <= j && j <= k) {
        if (verifyMatch(i, j, k)) {
          undoFix(str);
          print(str, i, j, k);
          return;
        } else if (verifyMatch(j, i, k)) {
          undoFix(str);
          print(str, j, i, k);
          return;
        }
      }
    }
  }
}
int main() {
  ios_base ::sync_with_stdio(0);
  string str;
  while (cin >> str) {
    initPots();
    fix(str);
    initHashes(str);
    search(str);
  }
}
