#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0, neg = 1;
  char c = getchar();
  while (!isdigit(c)) {
    if (c == '-') neg = -1;
    c = getchar();
  }
  while (isdigit(c)) x = x * 10 + c - '0', c = getchar();
  return x * neg;
}
inline void print(long long x) {
  if (x < 0) {
    putchar('-');
    print(abs(x));
    return;
  }
  if (x <= 9)
    putchar(x + '0');
  else {
    print(x / 10);
    putchar(x % 10 + '0');
  }
}
inline long long qpow(long long x, long long e, long long _MOD) {
  long long ans = 1;
  while (e) {
    if (e & 1) ans = ans * x % _MOD;
    x = x * x % _MOD;
    e >>= 1;
  }
  return ans;
}
char s[1000005];
const long long MOD1 = 666623333;
const long long MOD2 = 993244853;
long long base1, base2;
long long hs1[1000005], hs2[1000005], P1[1000005], P2[1000005], n;
inline pair<long long, long long> gethash(long long l, long long r) {
  return {(hs1[r] - hs1[l - 1] * P1[r - l + 1] % MOD1 + MOD1) % MOD1,
          (hs2[r] - hs2[l - 1] * P2[r - l + 1] % MOD2 + MOD2) % MOD2};
}
inline bool check(pair<long long, long long> a, pair<long long, long long> b,
                  pair<long long, long long> c) {
  return pair<long long, long long>((a.first + b.first) % MOD1,
                                    (a.second + b.second) % MOD2) == c;
}
inline void deal(long long l1, long long r1, long long l2, long long r2,
                 long long l3, long long r3) {
  if (s[l1] == '0' && r1 - l1 + 1 > 1) return;
  if (s[l2] == '0' && r2 - l2 + 1 > 1) return;
  if (s[l3] == '0' && r3 - l3 + 1 > 1) return;
  pair<long long, long long> h1 = gethash(l1, r1), h2 = gethash(l2, r2),
                             h3 = gethash(l3, r3);
  if (check(h1, h2, h3)) {
    for (long long i = l1; i <= r1; i++) putchar(s[i]);
    putchar('+');
    for (long long i = l2; i <= r2; i++) putchar(s[i]);
    putchar('=');
    for (long long i = l3; i <= r3; i++) putchar(s[i]);
    exit(0);
  }
}
signed main() {
  base1 = base2 = 10;
  cin >> s + 1;
  n = strlen(s + 1);
  P1[0] = P2[0] = 1;
  for (long long i = 1; i <= n; i++) {
    P1[i] = P1[i - 1] * base1 % MOD1;
    P2[i] = P2[i - 1] * base2 % MOD2;
    hs1[i] = (hs1[i - 1] * base1 + s[i] - '0') % MOD1;
    hs2[i] = (hs2[i - 1] * base2 + s[i] - '0') % MOD2;
  }
  for (long long i = 1; i <= n; i++) {
    if (i + i < n) {
      deal(1, n - i - i, n - i - i + 1, n - i, n - i + 1, n);
      deal(1, i, i + 1, n - i, n - i + 1, n);
    }
    if (i + (i - 1) < n) {
      deal(1, i - 1, i, n - i, n - i + 1, n);
      deal(1, n - i - i + 1, n - i - i + 2, n - i, n - i + 1, n);
    }
  }
  return 0;
}
