#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
const int mod[3] = {1000000007, 1000000009, 1000000021};
char A[maxn];
long long h[10][maxn];
long long T[10][maxn];
void HASH(int b, int m, long long h[], long long t[], int l) {
  t[0] = 1;
  h[0] = 0;
  for (int i = 1; i <= l; i++) t[i] = t[i - 1] * b % m;
  for (int i = 1; i <= l; i++) {
    h[i] = (h[i - 1] * b + A[i] - '0') % m;
  }
}
int ck(int a, int l) {
  if (l == 1)
    return 1;
  else
    return A[a] != '0';
}
int len;
void check(int l1, int l2, int l3) {
  if (l1 >= 1 && l2 >= 1 && l3 >= 1) {
    int vis = 1;
    for (int i = 0; i < 3; i++) {
      int h1 = h[i][l1];
      int h2 =
          ((h[i][l1 + l2] - h[i][l1] * T[i][l2]) % mod[i] + mod[i]) % mod[i];
      int h3 =
          ((h[i][len] - h[i][l1 + l2] * T[i][l3]) % mod[i] + mod[i]) % mod[i];
      h1 += h2;
      h1 %= mod[i];
      if (h1 != h3) {
        vis = 0;
        break;
      }
    }
    if (vis && ck(1, l1) && ck(l1 + 1, l2) && ck(l2 + l1 + 1, l3)) {
      l2 += l1;
      for (int i = 1; i <= l1; i++) putchar(A[i]);
      putchar('+');
      for (int i = l1 + 1; i <= l2; i++) putchar(A[i]);
      putchar('=');
      for (int i = l2 + 1; i <= len; i++) putchar(A[i]);
      exit(0);
    }
  }
}
int main() {
  scanf("%s", A + 1);
  len = strlen(A + 1);
  for (int i = 0; i < 3; i++) HASH(10, mod[i], h[i], T[i], len);
  for (int i = len; i; i--) {
    check(i, len - i - i, i), check(i - 1, len - i - i + 1, i),
        check(len - i - i, i, i), check(len - i - i + 1, i - 1, i);
  }
}
