#include <bits/stdc++.h>
using namespace std;
int n;
char s[1000006];
int mod[2] = {998244353, 1000000007};
int p10[1000006][2];
int hs[1000006][2];
int val(int l, int r, int k) {
  return (hs[r][k] - 1ll * hs[l][k] * p10[r - l][k] % mod[k] + mod[k]) % mod[k];
}
bool check(int l, int r) {
  if (r - l < 1) return false;
  if (s[0] == '0' && l > 1) return false;
  if (s[l + 1] == '0' && r - l > 1) return false;
  if (s[r + 1] == '0' && n - r > 1) return false;
  for (int k = 0; k <= 2 - 1; ++k)
    if ((val(0, l, k) + val(l, r, k)) % mod[k] != val(r, n, k)) return false;
  return true;
}
bool flag = false;
void work(int l, int r) {
  if (flag) return;
  if (check(l, r)) {
    flag = true;
    for (int i = 1; i <= l; ++i) printf("%c", s[i]);
    printf("+");
    for (int i = l + 1; i <= r; ++i) printf("%c", s[i]);
    printf("=");
    for (int i = r + 1; i <= n; ++i) printf("%c", s[i]);
  }
}
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (int k = 0; k <= 2 - 1; ++k) p10[0][k] = 1;
  for (int i = 1; i <= n; ++i)
    for (int k = 0; k <= 2 - 1; ++k) p10[i][k] = 10ll * p10[i - 1][k] % mod[k];
  for (int i = 1; i <= n; ++i)
    for (int k = 0; k <= 2 - 1; ++k) {
      hs[i][k] = (10ll * hs[i - 1][k] + s[i] - '0') % mod[k];
    }
  for (int l = 1; l * 2 < n; ++l) {
    if (l * 3 < n) {
      work(l, (n + l) / 2);
    } else {
      work(l, n - l);
      work(l, n - l - 1);
    }
  }
  return 0;
}
