#include <bits/stdc++.h>
using namespace std;
long long suffix[1000000], invPow10[1000000 + 1];
int n;
string s;
long long getValue(int lo, int hi) {
  long long res = suffix[lo] + 1000000007 - suffix[hi];
  res *= invPow10[n - hi];
  res %= 1000000007;
  return res;
}
bool tryToDo(int addendLength, int sumLength) {
  if (addendLength <= 0) return false;
  if (n - sumLength - addendLength <= 0) return false;
  int sumStart = n - sumLength;
  if (s[0] == '0' && addendLength > 1) return false;
  if (s[addendLength] == '0' && (n - sumLength - addendLength) > 1)
    return false;
  if (s[sumStart] == '0' && sumLength > 1) return false;
  if ((getValue(0, addendLength) + getValue(addendLength, sumStart)) %
          1000000007 ==
      suffix[sumStart]) {
    cout << s.substr(0, addendLength) << "+"
         << s.substr(addendLength, n - sumLength - addendLength) << "="
         << s.substr(sumStart, sumLength) << endl;
    return true;
  }
  return false;
}
bool works(int addendLength, int sumLength) {
  if (max(addendLength, n - sumLength - addendLength) == sumLength ||
      max(addendLength, n - sumLength - addendLength) == sumLength - 1) {
    if (tryToDo(addendLength, sumLength)) return true;
    if (tryToDo(n - sumLength - addendLength, sumLength)) return true;
  }
  return false;
}
long long modPow(long long a, long long p) {
  if (p == 0) return 1;
  if (p % 2 == 1) return (a * modPow(a, p - 1)) % 1000000007;
  long long sqrt = modPow(a, p >> 1);
  return (sqrt) * (sqrt) % 1000000007;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> s;
  n = s.size();
  suffix[n - 1] = s[n - 1] - '0';
  long long mult = 10;
  for (int i = (n - 1) - 1; i >= 0; i--) {
    suffix[i] =
        ((mult * (s[i] - '0')) % 1000000007 + suffix[i + 1]) % 1000000007;
    mult *= 10;
    mult %= 1000000007;
  }
  invPow10[0] = 1;
  invPow10[1] = modPow(10, 1000000007 - 2);
  for (int i = (2); i < (n + 1); i++)
    invPow10[i] = (invPow10[i - 1] * invPow10[1]) % 1000000007;
  for (int sumLength = (n / 2 + 1) - 1;
       sumLength >= (ceil((double)(n - 1) / 3)); sumLength--) {
    if (sumLength == 0) continue;
    if (works(sumLength, sumLength)) return 0;
    if (works(sumLength - 1, sumLength)) return 0;
    if (works(n - 2 * sumLength, sumLength)) return 0;
    if (works(n - 2 * sumLength + 1, sumLength)) return 0;
  }
  return 0;
}
