#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7;
char str[N];
int mul(int a, int b, const int &M) { return 1ll * a * b % M; }
int add(int a, int b, const int &M) {
  if ((a += b) >= M) a -= M;
  return a;
}
namespace HH {
const int N = 1e6 + 7, HN = 5;
const int B[HN] = {10, 10, 10, 10, 10};
const int P[HN] = {1000000007, 1000000009, 91815541, 917120411, 687840301};
int pw[HN][N];
void pre() {
  for (int i = (0); i < (HN); ++i) {
    pw[i][0] = 1;
    for (int j = (1); j < (N); ++j) pw[i][j] = mul(pw[i][j - 1], B[i], P[i]);
  }
}
int val(char ch) { return ch - '0'; }
struct Hash {
  int h[HN][N], sz;
  void ini(char *s) {
    sz = strlen(s);
    for (int i = (0); i < (HN); ++i) {
      h[i][0] = val(s[0]);
      for (int j = (1); j < (sz); ++j)
        h[i][j] = add(val(s[j]), mul(h[i][j - 1], B[i], P[i]), P[i]);
    }
  }
  int geth(int l, int r, int k = 0) {
    return add(h[k][r - 1],
               P[k] - mul(l > 0 ? h[k][l - 1] : 0, pw[k][r - l], P[k]), P[k]);
  }
};
}  // namespace HH
int n;
HH::Hash hs;
bool gao(int la, int lb, int lc) {
  for (int i = (0); i < (HH::HN); ++i)
    if (add(hs.geth(0, la, i), hs.geth(la, la + lb, i), HH::P[i]) !=
        hs.geth(la + lb, n, i))
      return false;
  char ch = str[la];
  str[la] = '\0';
  printf("%s+", str);
  str[la] = ch;
  ch = str[la + lb];
  str[la + lb] = '\0';
  printf("%s=", str + la);
  str[la + lb] = ch;
  printf("%s\n", str + la + lb);
  return true;
}
bool ok(int a, int b, int c) {
  if (a < 1 || a > c) return false;
  if (b < 1 || a > c) return false;
  if (a > 1 && str[0] == '0') return false;
  if (b > 1 && str[a] == '0') return false;
  if (c > 1 && str[a + b] == '0') return false;
  return true;
}
void solve() {
  n = strlen(str);
  HH::pre();
  hs.ini(str);
  for (int la = (1); la < (n + 1); ++la) {
    for (int lc = (la); lc < (la + 2); ++lc) {
      int lb = n - la - lc;
      if (!ok(la, lb, lc)) continue;
      if (gao(la, lb, lc)) return;
    }
  }
  for (int lb = (1); lb < (n + 1); ++lb) {
    for (int lc = (lb); lc < (lb + 2); ++lc) {
      int la = n - lb - lc;
      if (!ok(la, lb, lc)) continue;
      if (gao(la, lb, lc)) return;
    }
  }
}
int main() {
  while (~scanf(" %s", str)) solve();
  return 0;
}
