#include <bits/stdc++.h>
using namespace std;
const int mo[2] = {998244353, 1000000007};
int Pow[2][1000006], inv[2][1000006], L, num[2][1000006];
char A[1000006];
int fast(int x, int y, const int mo) {
  int res = 1;
  while (y) {
    if (y & 1) res = 1ll * res * x % mo;
    y >>= 1;
    x = 1ll * x * x % mo;
  }
  return res;
}
bool check(int l, int r) {
  if (l == r || r == L || !A[1] && l > 1 || !A[l + 1] && r != l + 1 ||
      !A[r + 1] && r + 1 != L)
    return false;
  int a1 = num[0][l], a2 = num[1][l];
  int b1 = ((num[0][r] - 1ll * num[0][l] * Pow[0][r - l + 1]) % mo[0] + mo[0]) %
           mo[0];
  int c1 = ((num[0][L] - 1ll * num[0][r] * Pow[0][L - r + 1]) % mo[0] + mo[0]) %
           mo[0];
  int b2 = ((num[1][r] - 1ll * num[1][l] * Pow[1][r - l + 1]) % mo[1] + mo[1]) %
           mo[1];
  int c2 = ((num[1][L] - 1ll * num[1][r] * Pow[1][L - r + 1]) % mo[1] + mo[1]) %
           mo[1];
  return c1 == (a1 + b1) % mo[0] && c2 == (a2 + b2) % mo[1];
}
int main() {
  int inv1, inv2, r = 1;
  Pow[0][1] = Pow[1][1] = 1;
  for (int i = 2; i <= 1000006 - 6; ++i)
    Pow[0][i] = 10ll * Pow[0][i - 1] % mo[0],
    Pow[1][i] = 10ll * Pow[1][i - 1] % mo[1];
  inv[0][1] = fast(10, mo[0] - 2, mo[0]),
  inv[1][1] = fast(10, mo[1] - 2, mo[1]);
  for (int i = 2; i <= 1000006 - 6; ++i)
    inv[0][i] = 1ll * inv[0][i - 1] * inv[0][1] % mo[0],
    inv[1][i] = 1ll * inv[1][i - 1] * inv[1][1] % mo[1];
  scanf("%s", A + 1);
  L = strlen(A + 1);
  for (int i = 1; i <= L; ++i) {
    A[i] = A[i] - '0';
    num[0][i] = (10ll * num[0][i - 1] + A[i]) % mo[0];
    num[1][i] = (10ll * num[1][i - 1] + A[i]) % mo[1];
  }
  for (int i = 1; i < (L + 1) / 2; ++i) {
    while (i < L - r - 1 && r - i < L - r - 1 || r == i) r++;
    while (r > i + 1 && (L - r < i || L - r < r - i)) r--;
    if (check(i, r)) {
      for (int j = 1; j <= i; ++j) printf("%c", A[j] + '0');
      putchar('+');
      for (int j = i + 1; j <= r; ++j) printf("%c", A[j] + '0');
      putchar('=');
      for (int j = r + 1; j <= L; ++j) printf("%c", A[j] + '0');
      return 0;
    }
    if (check(i, r + 1)) {
      for (int j = 1; j <= i; ++j) printf("%c", A[j] + '0');
      putchar('+');
      for (int j = i + 1; j <= r + 1; ++j) printf("%c", A[j] + '0');
      putchar('=');
      for (int j = r + 2; j <= L; ++j) printf("%c", A[j] + '0');
      return 0;
    }
    if (check(i, r - 1)) {
      for (int j = 1; j <= i; ++j) printf("%c", A[j] + '0');
      putchar('+');
      for (int j = i + 1; j < r; ++j) printf("%c", A[j] + '0');
      putchar('=');
      for (int j = r; j <= L; ++j) printf("%c", A[j] + '0');
      return 0;
    }
  }
  return 0;
}
