#include <bits/stdc++.h>
using namespace std;
struct fastIO {
  inline fastIO operator>>(int& num) {
    num = 0;
    char c = getchar();
    while (c != '-' && (c < '0' || c > '9')) c = getchar();
    bool foo = 0;
    if (c == '-') {
      foo = 1;
      c = getchar();
    }
    while (c >= '0' && c <= '9') {
      num = (num << 3) + (num << 1) + c - '0';
      c = getchar();
    }
    if (foo) num = -num;
    return *this;
  }
  inline fastIO operator>>(long long& num) {
    num = 0;
    char c = getchar();
    while (c != '-' && (c < '0' || c > '9')) c = getchar();
    bool foo = 0;
    if (c == '-') {
      foo = 1;
      c = getchar();
    }
    while (c >= '0' && c <= '9') {
      num = (num << 3) + (num << 1) + c - '0';
      c = getchar();
    }
    if (foo) num = -num;
    return *this;
  }
  inline fastIO operator>>(float& num) {
    scanf("%f", &num);
    return *this;
  }
  inline fastIO operator>>(double& num) {
    scanf("%lf", &num);
    return *this;
  }
  inline fastIO operator>>(long double& num) {
    scanf("%Lf", &num);
    return *this;
  }
  inline fastIO operator>>(char& num) {
    num = getchar();
    while (num == ' ' || num == '\n') num = getchar();
    return *this;
  }
  inline fastIO operator>>(char* num) {
    int cnt = 0;
    char c = getchar();
    while (c == ' ' || c == '\n') c = getchar();
    while (c != ' ' && c != '\n') {
      num[cnt++] = c;
      c = getchar();
    }
    num[cnt] = 0;
    return *this;
  }
  inline fastIO operator>>(string& num) {
    cin >> num;
    return *this;
  }
  inline void printInt(const int& num) {
    if (num < 10) {
      putchar(num + '0');
      return;
    }
    printInt(num / 10);
    putchar((num % 10) + '0');
  }
  inline void printINT(const long long& num) {
    if (num < 10) {
      putchar(num + '0');
      return;
    }
    printINT(num / 10);
    putchar((num % 10) + '0');
  }
  inline fastIO operator<<(const int& num) {
    if (num < 0)
      putchar('-'), printInt(-num);
    else
      printInt(num);
    return *this;
  }
  inline fastIO operator<<(const long long& num) {
    if (num < 0)
      putchar('-'), printINT(-num);
    else
      printINT(num);
    return *this;
  }
  inline fastIO operator<<(const float& num) {
    printf("%.10f", num);
    return *this;
  }
  inline fastIO operator<<(const double& num) {
    printf("%.16lf", num);
    return *this;
  }
  inline fastIO operator<<(const long double& num) {
    printf("%.20Lf", num);
    return *this;
  }
  inline fastIO operator<<(const char& num) {
    putchar(num);
    return *this;
  }
  inline fastIO operator<<(const char* num) {
    for (int i = 0; num[i]; i++) putchar(num[i]);
    return *this;
  }
  inline fastIO operator<<(const string& num) {
    cout << num;
    return *this;
  }
} fio;
int x, y, z;
long long mina, minb;
long long minlen = 15;
long long mii10[20];
void dfs(long long a, long long b, long long c, long long A, long long B,
         long long jw, long long wht, long long len) {
  if (len >= minlen) {
    return;
  }
  if (!a && !b && !c && !jw) {
    minlen = len;
    mina = A;
    minb = B;
    return;
  }
  if (!c) {
    long long num = a + b + jw;
    int wei = 0;
    while (num) {
      num /= 10;
      wei++;
    }
    dfs(0, 0, 0, A + mii10[wht] * a, B + mii10[wht] * b, 0, wht, len + wei);
  } else if ((a + b + jw) % 10 == c % 10) {
    dfs(a / 10, b / 10, c / 10, A + mii10[wht] * (a % 10),
        B + mii10[wht] * (b % 10), (jw + a % 10 + b % 10) / 10, wht + 1, len);
  } else {
    dfs(a * 10 + (c - b % 10 - jw + 10) % 10, b, c, A, B, jw, wht, len + 1);
    dfs(a, b * 10 + (c - a % 10 - jw + 10) % 10, c, A, B, jw, wht, len + 1);
    dfs(a, b, c * 10 + (a + b + jw) % 10, A, B, jw, wht, len + 1);
  }
}
int main() {
  scanf("%d+%d=%d", &x, &y, &z);
  mii10[0] = 1;
  for (int i = 1; i < 19; i++) {
    mii10[i] = mii10[i - 1] * 10;
  }
  dfs(x, y, z, 0, 0, 0, 0, 0);
  printf("%I64d+%I64d=%I64d", mina, minb, mina + minb);
  return 0;
}
