#include <bits/stdc++.h>
const int maxn = 1000005;
using namespace std;
long long n, h1[maxn], h2[maxn], ans1, ans2, n1[maxn], n2[maxn];
const int base = 10, p1 = 1e9 + 19, p2 = 998244853;
char s[maxn];
void check(int l, int i) {
  long long q, res;
  q = (h1[n - l] - h1[i] * n1[n - l - i] % p1 + p1) % p1;
  res = (h1[n] - h1[n - l] * n1[l] % p1) % p1;
  res = (res + p1) % p1;
  if ((h1[i] + q) % p1 != res) return;
  q = (h2[n - l] - h2[i] * n2[n - l - i] % p2 + p2) % p2;
  res = (h2[n] - h2[n - l] * n2[l] % p2) % p2;
  res = (res + p2) % p2;
  if ((h2[i] + q) % p2 == res) ans1 = i;
  return;
}
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  n1[0] = n2[0] = 1;
  for (int i = 1; i <= n; ++i) {
    n1[i] = n1[i - 1] * base % p1;
    n2[i] = n2[i - 1] * base % p2;
    h1[i] = (h1[i - 1] * base % p1 + s[i] - '0') % p1;
    h2[i] = (h2[i - 1] * base % p2 + s[i] - '0') % p2;
  }
  int l, q, res;
  for (int i = 1; i <= n / 2; i++) {
    l = (n - i + 1) / 2;
    if (l < i) l = i;
    if (s[i + 1] == '0' && l + i != n - 1) continue;
    check(l, i);
    if (ans1) {
      ans2 = n - l;
      break;
    }
    if (l + 1 + i < n) {
      ++l;
      check(l, i);
      if (ans1) {
        ans2 = n - l;
        break;
      }
    }
  }
  for (int i = 1; i <= ans1; ++i) putchar(s[i]);
  putchar('+');
  for (int i = ans1 + 1; i <= ans2; ++i) putchar(s[i]);
  putchar('=');
  for (int i = ans2 + 1; i <= n; ++i) putchar(s[i]);
}
