#include <bits/stdc++.h>
using namespace std;
const int N = 1000010;
inline int read() {
  int jg = 0, jk = getchar() - '0', f = 1;
  while (jk < 0 || jk > 9) {
    if (jk == '-' - '0') f = -1;
    jk = getchar() - '0';
  }
  while (jk >= 0 && jk <= 9) jg *= 10, jg += jk, jk = getchar() - '0';
  return jg * f;
}
unsigned long long sum[9][N], mod[8], bin[9][N];
char s[N];
int n;
bool check(int x, int y) {
  if (y > x + 1 && s[x + 1] == '0') return 0;
  if (n > y + 1 && s[y + 1] == '0') return 0;
  if (n - y < x || n - y < y - x) return 0;
  if (y <= x) return 0;
  unsigned long long a, b;
  for (int i = 0; i <= 7; ++i) {
    a = sum[i][x] + sum[i][y] + mod[i] - (sum[i][x] * bin[i][y - x]) % mod[i];
    while (a >= mod[i]) a -= mod[i];
    b = sum[i][n] + mod[i] - (sum[i][y] * bin[i][n - y]) % mod[i];
    while (b >= mod[i]) b -= mod[i];
    if (a != b) return 0;
  }
  a = sum[8][x] + sum[8][y] - sum[8][x] * bin[8][y - x];
  b = sum[8][n] - sum[8][y] * bin[8][n - y];
  if (a != b) return 0;
  for (int i = 1; i <= x; ++i) printf("%c", s[i]);
  printf("+");
  for (int i = x + 1; i <= y; ++i) printf("%c", s[i]);
  printf("=");
  for (int i = y + 1; i <= n; ++i) printf("%c", s[i]);
  return 1;
}
int main() {
  scanf("%s", s + 1);
  mod[0] = 1e9 + 7;
  mod[1] = 998244353;
  mod[2] = 19260817;
  mod[3] = 479001599;
  mod[4] = 163227661;
  mod[5] = 917120411;
  mod[6] = 122420729;
  mod[7] = 290182597;
  n = strlen(s + 1);
  for (int i = 0; i <= 8; ++i) bin[i][0] = 1;
  for (int i = 1; i <= n; ++i) {
    for (int j = 0; j <= 7; ++j) {
      sum[j][i] = sum[j][i - 1] * 10 + s[i] - '0';
      if (sum[j][i] >= mod[j]) sum[j][i] %= mod[j];
      bin[j][i] = bin[j][i - 1] * 10;
      if (bin[j][i] >= mod[j]) bin[j][i] %= mod[j];
    }
    sum[8][i] = sum[8][i - 1] * 10 + s[i] - '0';
    bin[8][i] = bin[8][i - 1] * 10;
  }
  for (int i = 1, j; i <= n; ++i) {
    j = (n - i) / 2 + i;
    if (check(i, j)) break;
    j = n - i;
    if (check(i, j)) break;
    j = n - i - 1;
    if (check(i, j)) break;
  }
  return 0;
}
