#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const int Mod = 1e9 + 7;
const int Mod2 = 49157;
const int p = 10;
inline long long Read() {
  long long Ans = 0;
  char Ch = getchar(), Las = ' ';
  while (!isdigit(Ch)) {
    Las = Ch;
    Ch = getchar();
  }
  while (isdigit(Ch)) {
    Ans = (Ans << 3) + (Ans << 1) + Ch - '0';
    Ch = getchar();
  }
  if (Las == '-') Ans = -Ans;
  return Ans;
}
inline void Write(long long x) {
  if (x < 0) {
    x = -x;
    putchar('-');
  }
  if (x >= 10) Write(x / 10);
  putchar(x % 10 + '0');
}
unsigned long long Hash[1000010], Hash2[1000010], idx[1000010], Pow[1000010],
    Pow2[1000010];
unsigned long long a, b, c;
unsigned long long a2, b2, c2;
int Left_a, Right_a, Left_b, Right_b, Left_c, Right_c, Len;
bool Flag;
string s;
inline void Get_Hash() {
  Pow[0] = 1;
  Pow2[0] = 1;
  for (int i = 1; i <= 1000010 / 2; i++) {
    Pow[i] = Pow[i - 1] * p % Mod;
    Pow2[i] = Pow2[i - 1] * p % Mod2;
  }
  idx[0] = s[0] - '0';
  Hash[0] = idx[0];
  Hash2[0] = idx[0];
  for (int i = 1; i < Len; i++) {
    idx[i] = s[i] - '0';
    Hash[i] = (Hash[i - 1] * p + idx[i]) % Mod;
    Hash2[i] = (Hash2[i - 1] * p + idx[i]) % Mod2;
  }
}
inline unsigned long long Cmp_Hash(int Left, int Right) {
  if (Left == 0) return Hash[Right];
  return (Hash[Right] + Mod - (Hash[Left - 1] * Pow[Right - Left + 1]) % Mod) %
         Mod;
}
inline unsigned long long Cmp_Hash2(int Left, int Right) {
  if (Left == 0) return Hash2[Right];
  return (Hash2[Right] + Mod2 -
          (Hash2[Left - 1] * Pow2[Right - Left + 1]) % Mod2) %
         Mod2;
}
int main() {
  cin >> s;
  Len = s.size();
  Get_Hash();
  int j;
  for (int i = 1; i <= Len / 2; i++) {
    if (i > 1 and idx[0] == 0) break;
    a = Cmp_Hash(0, i - 1);
    a2 = Cmp_Hash2(0, i - 1);
    if (i < Len / 3 + 1) {
      j = (Len - i) / 2;
      if (!(idx[i] == 0 and j > 1) and !(Len - i - j > 1 and idx[i + j] == 0)) {
        b = Cmp_Hash(i, i + j - 1);
        b2 = Cmp_Hash2(i, i + j - 1);
        c = Cmp_Hash(i + j, Len - 1);
        c2 = Cmp_Hash2(i + j, Len - 1);
        if ((a + b) % Mod == c % Mod and (a2 + b2) % Mod2 == c2 % Mod2) {
          Flag = 1, Left_a = 0, Right_a = i - 1, Left_b = i;
          Right_b = i + j - 1, Left_c = i + j, Right_c = Len - 1;
          break;
        }
      }
      j = (Len - i - 1) / 2;
      if (!(idx[i] == 0 and j > 1) and !(Len - i - j > 1 and idx[i + j] == 0)) {
        b = Cmp_Hash(i, i + j - 1);
        b2 = Cmp_Hash2(i, i + j - 1);
        c = Cmp_Hash(i + j, Len - 1);
        c2 = Cmp_Hash2(i + j, Len - 1);
        if ((a + b) % Mod == c % Mod and (a2 + b2) % Mod2 == c2 % Mod2) {
          Flag = 1, Left_a = 0, Right_a = i - 1, Left_b = i;
          Right_b = i + j - 1, Left_c = i + j, Right_c = Len - 1;
          break;
        }
      }
    }
    if (i > (Len - 1) / 3 - 1) {
      j = Len - 2 * i;
      if (!(idx[i] == 0 and j > 1) and !(Len - i - j > 1 and idx[i + j] == 0)) {
        b = Cmp_Hash(i, i + j - 1);
        b2 = Cmp_Hash2(i, i + j - 1);
        c = Cmp_Hash(i + j, Len - 1);
        c2 = Cmp_Hash2(i + j, Len - 1);
        if ((a + b) % Mod == c % Mod and (a2 + b2) % Mod2 == c2 % Mod2) {
          Flag = 1, Left_a = 0, Right_a = i - 1, Left_b = i;
          Right_b = i + j - 1, Left_c = i + j, Right_c = Len - 1;
          break;
        }
      }
      j = Len - 2 * i - 1;
      if (!(idx[i] == 0 and j > 1) and !(Len - i - j > 1 and idx[i + j] == 0)) {
        b = Cmp_Hash(i, i + j - 1);
        b2 = Cmp_Hash2(i, i + j - 1);
        c = Cmp_Hash(i + j, Len - 1);
        c2 = Cmp_Hash2(i + j, Len - 1);
        if ((a + b) % Mod == c % Mod and (a2 + b2) % Mod2 == c2 % Mod2) {
          Flag = 1, Left_a = 0, Right_a = i - 1, Left_b = i;
          Right_b = i + j - 1, Left_c = i + j, Right_c = Len - 1;
          break;
        }
      }
    }
    if (Flag == 1) break;
  }
  if (Flag == 1) {
    for (int i = Left_a; i <= Right_a; i++) Write(idx[i]);
    putchar('+');
    for (int i = Left_b; i <= Right_b; i++) Write(idx[i]);
    putchar('=');
    for (int i = Left_c; i <= Right_c; i++) Write(idx[i]);
    puts("");
  }
  return 0;
}
