#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000000 + 1000;
const int MAXH = 3;
const int MOD[MAXH] = {
    1000000007,
    1000000009,
    19260817,
};
int n;
char s[MAXN];
int h[MAXH][MAXN], p[MAXH][MAXN];
int get(int t, int l, int r) {
  return (h[t][r] - (long long)h[t][l - 1] * p[t][r - l + 1] % MOD[t] +
          MOD[t]) %
         MOD[t];
}
void init(int t) {
  h[t][0] = 0;
  for (int i = 1; i <= n; i++)
    h[t][i] = (h[t][i - 1] * 10ll + s[i] - '0') % MOD[t];
  p[t][0] = 1;
  for (int i = 1; i <= n; i++) p[t][i] = (long long)p[t][i - 1] * 10ll % MOD[t];
}
bool check(int p1, int p2) {
  if (p1 <= 0 || p2 <= 0 || n - p1 - p2 <= 0) return false;
  if (s[1] == '0' || s[1 + p1] == '0' || s[1 + p1 + p2] == '0') return false;
  for (int i = 0; i < MAXH; i++)
    if ((get(i, 1, p1) + get(i, 1 + p1, p1 + p2)) % MOD[i] !=
        get(i, 1 + p1 + p2, n))
      return false;
  return true;
}
void answer(int p1, int p2) {
  for (int i = 1; i <= p1; i++) cout << s[i];
  cout << '+';
  for (int i = p1 + 1; i <= p1 + p2; i++) cout << s[i];
  cout << '=';
  for (int i = p1 + p2 + 1; i <= n; i++) cout << s[i];
  cout << endl;
  exit(0);
}
void solve1() {
  if (strcmp(s + 1, "000") == 0) answer(1, 1);
  if (n % 2 == 1 && s[1] == '0') {
    bool flag = true;
    for (int i = 0; i < n / 2; i++)
      if (s[2 + i] != s[2 + n / 2 + i]) {
        flag = false;
        break;
      }
    if (flag) answer(1, n / 2);
  }
  if (n % 2 == 1 && s[n / 2 + 1] == '0') {
    bool flag = true;
    for (int i = 0; i < n / 2; i++)
      if (s[1 + i] != s[2 + n / 2 + i]) {
        flag = false;
        break;
      }
    if (flag) answer(n / 2, 1);
  }
}
void solve2() {
  for (int i = 1; i <= n - 2; i++) {
    for (int j = -2; j <= 2; j++)
      if (check(i + j, n - i - i - j)) answer(i + j, n - i - i - j);
    for (int j = -2; j <= 2; j++)
      if (check(n - i - i - j, i + j)) answer(n - i - i - j, i + j);
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin >> (s + 1);
  n = strlen(s + 1);
  solve1();
  for (int i = 0; i < MAXH; i++) init(i);
  solve2();
  return 0;
}
