#include <bits/stdc++.h>
using namespace std;
char s[1000005];
int h[1000005], t[1000005], n;
int get(int a, int b) {
  return ((h[b] - h[a - 1] * t[b - a + 1]) % 23333 + 23333) % 23333;
}
void c(int z, int y) {
  if ((get(1, z) + get(z + 1, y)) % 23333 != get(y + 1, n) ||
      ((z != 1 && s[1] == '0') || (z + 1 != y && s[z + 1] == '0') ||
       (y + 1 != n && s[y + 1] == '0')))
    return;
  int i, w = 0, u = z, e = y, o = n, r, b;
  while (u > 0 || e > z || o > y || w) {
    r = (o > y ? s[o] - '0' : 0);
    b = (u > 0 ? s[u] - '0' : 0) + (e > z ? s[e] - '0' : 0) + w;
    w = b / 10;
    b %= 10;
    if (b != r) return;
    u -= (u > 0);
    e -= (e > z);
    o -= (o > y);
  }
  for (i = 1; i <= z; i++) putchar(s[i]);
  putchar('+');
  for (i = z + 1; i <= y; i++) putchar(s[i]);
  putchar('=');
  for (i = y + 1; i <= n; i++) putchar(s[i]);
  exit(0);
}
int main() {
  int i;
  scanf("%s", s + 1);
  n = strlen(s + 1);
  t[0] = 1;
  for (i = 1; i <= n; i++) {
    h[i] = (h[i - 1] * 10 + (s[i] - '0')) % 23333;
    t[i] = t[i - 1] * 10 % 23333;
  }
  for (i = 1; i * 2 < n; i++) {
    c(i, n - i);
    c(i, n - i - 1);
    c(i, i + (n - i) / 2);
  }
}
