#include <bits/stdc++.h>
using namespace std;
const int N = 1000005;
char s[N];
int n;
long long cnt1, cnt2, p1[N], p2[N], ha1[N], ha2[N];
long long bas = 10, mod1 = 19260817, mod2 = 1e9 + 9;
long long calc1(int l, int r) {
  long long res = (ha1[r] - ha1[l - 1] * p1[r - l + 1] % mod1 + mod1);
  if (res >= mod1) res -= mod1;
  return res;
}
long long calc2(int l, int r) {
  long long res = (ha2[r] - ha2[l - 1] * p2[r - l + 1] % mod2 + mod2);
  if (res >= mod2) res -= mod2;
  return res;
}
bool check(int p1, int p2) {
  if (p1 == 0 || (p2 - p1 != 1 && s[p1 + 1] == '0') ||
      (p2 != n - 1 && s[p2 + 1] == '0'))
    return 0;
  if (((calc1(1, p1) + calc1(p1 + 1, p2)) % mod1 == cnt1) &&
      ((calc2(1, p1) + calc2(p1 + 1, p2)) % mod2 == cnt2))
    return 1;
  else
    return 0;
}
void print(int p1, int p2) {
  for (int i = 1; i <= p1; i++) cout << s[i];
  putchar('+');
  for (int i = p1 + 1; i <= p2; i++) cout << s[i];
  putchar('=');
  for (int i = p2 + 1; i <= n; i++) cout << s[i];
  exit(0);
}
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  p1[0] = p2[0] = 1LL;
  for (int i = 1; i <= n; i++) {
    ha1[i] = (ha1[i - 1] * bas + s[i] - '0') % mod1;
    ha2[i] = (ha2[i - 1] * bas + s[i] - '0') % mod2;
    p1[i] = p1[i - 1] * bas % mod1;
    p2[i] = p2[i - 1] * bas % mod2;
  }
  for (int i = n - 1; i >= 2; i--) {
    if (n - i > i) break;
    cnt1 = calc1(i + 1, n), cnt2 = calc2(i + 1, n);
    int j = n - i;
    if (check(j - 1, i)) print(j - 1, i);
    if (check(j, i)) print(j, i);
    if (check(i - j, i)) print(i - j, i);
    if (check(i - j + 1, i)) print(i - j + 1, i);
  }
  return 0;
}
