#include <bits/stdc++.h>
using namespace std;
char s[1000002];
int n;
int p10[1000002][2], mod[2] = {6291469, 12582917}, sum[1000002][2];
int invM(int x, int t) {
  int i, p = mod[t] - 2, ans = 1, aux = x;
  for (int i = 1; i <= p; i <<= 1) {
    if (i & p) ans = (1LL * ans * aux) % mod[t];
    aux = (1LL * aux * aux) % mod[t];
  }
  return ans;
}
int Mod(int x, int t) {
  if (x >= mod[t]) x -= mod[t];
  if (x < 0) x += mod[t];
  return x;
}
void check(int al, int bl, int cl) {
  int C[2], A[2], B[2];
  if (!al || !bl || (bl > 1 && s[al + 1] == '0') ||
      (cl > 1 && s[n - cl + 1] == '0'))
    return;
  for (int t = 0; t < 2; ++t) {
    C[t] = Mod((sum[n][t] - 1LL * p10[cl][t] * sum[al + bl][t]) % mod[t], t);
    B[t] = Mod((sum[al + bl][t] - 1LL * sum[al][t] * p10[bl][t]) % mod[t], t);
    A[t] = sum[al][t];
    if (Mod(A[t] + B[t], t) != C[t]) return;
  }
  for (int i = 1; i <= al; ++i) printf("%c", s[i]);
  printf("+");
  for (int i = al + 1; i <= al + bl; ++i) printf("%c", s[i]);
  printf("=");
  for (int i = al + bl + 1; i <= n; ++i) printf("%c", s[i]);
  exit(0);
}
int main() {
  gets(s + 1);
  n = strlen(s + 1);
  p10[0][0] = p10[0][1] = 1;
  for (int i = 1; i <= n; ++i)
    for (int t = 0; t < 2; ++t) {
      p10[i][t] = (10LL * p10[i - 1][t]) % mod[t];
      sum[i][t] = (10LL * sum[i - 1][t] + (s[i] - '0')) % mod[t];
    }
  for (int cl = (n - 1) / 3 + 1; cl <= n / 2; ++cl) {
    int al = cl - 1, bl = n - al - cl;
    check(cl - 1, n - cl - cl + 1, cl);
    check(cl, n - cl - cl, cl);
    check(n - cl - cl + 1, cl - 1, cl);
    check(n - cl - cl, cl, cl);
  }
  return 0;
}
