#include <bits/stdc++.h>
int n;
char s[1000010];
int i, j, k, p, l, r;
int print() {
  int i = 1;
  for (; i <= l; i++) putchar(s[i]);
  putchar('+');
  for (; i <= r; i++) putchar(s[i]);
  putchar('=');
  for (; i <= n; i++) putchar(s[i]);
  return 1;
}
int check(int s1, int s2) {
  for (int i = s1, j = s2, k = n, t = 0; k > s2; k--) {
    if ((s[i] + s[j] + t - 96) % 10 != s[k] - 48) return 0;
    t = (s[i] + s[j] + t - 96) / 10;
    i--, j--;
    if (i <= 0) i = 0;
    if (j <= s1) j = 0;
  }
  return 1;
}
int judge() {
  if (l + 1 != r && s[l + 1] == '0') return 0;
  if (p) {
    if (s[r + 1] != k) return 0;
  } else if (i != j && (k != s[r + 1] && k + 1 != s[r + 1]))
    return 0;
  if (!check(l, r)) return 0;
  return print();
}
int main() {
  gets(s + 1);
  n = strlen(s + 1);
  s[0] = '0';
  l = 1, r = n - n / 2;
  if (s[1] == '0') {
    print();
    return 0;
  }
  for (i = 1 + (n & 1 ? 0 : 1), j = (n - i) / 2, r = n - j; i <= n / 3;
       i += 2, j--, r++) {
    l = j, k = s[1];
    if (judge()) return 0;
    l = i, k = s[l + 1];
    if (judge()) return 0;
  }
  p = 1, k = 49;
  for (i = 1 + (n & 1 ? 1 : 0), j = (n - i) / 2, r = n - j - 1;
       i <= n / 3 - (n % 3 == 0); i += 2, j--, r++) {
    l = j;
    if (judge()) return 0;
    l = i;
    if (judge()) return 0;
  }
}
