#include <bits/stdc++.h>
using namespace std;
const int N = 1000010;
int mod = 1e9 + 3;
unsigned long long hs[N], p[N];
char str[N];
unsigned long long get_hash(int l, int r) {
  return (hs[r] - hs[l - 1] * p[r - l + 1] % mod + mod) % mod;
}
bool check(int a, int b, int n, int len) {
  if (a <= 0 || b <= 0) return false;
  if (a > 1 && str[1] == '0') return false;
  if (b > 1 && str[a + 1] == '0') return false;
  if (len > 1 && str[a + b + 1] == '0') return false;
  if (a > len || b > len) return false;
  if ((get_hash(1, a) + get_hash(a + 1, a + b)) % mod ==
      get_hash(a + b + 1, n)) {
    for (int j = 1; j <= a; j++) printf("%c", str[j]);
    printf("+");
    for (int j = a + 1; j <= a + b; j++) printf("%c", str[j]);
    printf("=");
    for (int j = a + b + 1; j <= n; j++) printf("%c", str[j]);
    return true;
  }
  return false;
}
void solve() {
  cin >> str + 1;
  p[0] = 1;
  int n = strlen(str + 1);
  for (int i = 1; i <= n; i++) {
    hs[i] = (hs[i - 1] * 10 + str[i] - '0') % mod;
    p[i] = p[i - 1] * 10 % mod;
  }
  for (int i = 1;; i++) {
    if (check(i, n - 2 * i, n, i)) return;
    if (check(i, n - 2 * i - 1, n, i + 1)) return;
    if (check(n - 2 * i, i, n, i)) return;
    if (check(n - 2 * i - 1, i, n, i + 1)) return;
  }
}
int main() {
  int t = 1;
  while (t--) {
    solve();
  }
}
