#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
string s;
int len;
long long powo[1000005], hash1[1000005];
void go(int a, int b, int c) {
  if ((a > 1 && s[0] == '0') || (b > 1 && s[a] == '0') ||
      (c > 1 && s[a + b] == '0'))
    return;
  long long al = hash1[a];
  long long bl = (hash1[a + b] - al * powo[b] % mod + mod) % mod;
  long long cl = (hash1[len] - hash1[a + b] * powo[c] % mod + mod) % mod;
  if ((al + bl) % mod == cl) {
    int r = 0;
    for (int i = 1; i <= max(a, b); i++) {
      int sum = r;
      if (i <= a) sum += s[a - i] - '0';
      if (i <= b) sum += s[a + b - i] - '0';
      if (sum % 10 != s[len - i] - '0') return;
      r = sum / 10;
    }
    cout << s.substr(0, a) << "+" << s.substr(a, b) << "=" << s.substr(a + b, c)
         << endl;
    exit(0);
  }
}
void try1(int c) {
  int a = c - 1;
  int b = len - c - a;
  if (a > 0 && a <= len && b > 0 && b <= len) go(a, b, c);
}
void try2(int c) {
  int a = c;
  int b = len - c - a;
  if (a > 0 && a <= len && b > 0 && b <= len) go(a, b, c);
}
void try3(int c) {
  int b = c - 1;
  int a = len - c - b;
  if (a > 0 && a <= len && b > 0 && b <= len) go(a, b, c);
}
void try4(int c) {
  int b = c;
  int a = len - c - b;
  if (a > 0 && a <= len && b > 0 && b <= len) go(a, b, c);
}
int main() {
  cin >> s;
  len = s.size();
  powo[0] = 1;
  for (int i = 1; i <= len; i++) powo[i] = powo[i - 1] * 10 % mod;
  for (int i = 1; i <= len; i++)
    hash1[i] = (hash1[i - 1] * 10 + (s[i - 1] - '0')) % mod;
  for (int i = 1; i <= len; i++) {
    try1(i);
    try2(i);
    try3(i);
    try4(i);
  }
  return 0;
}
