#include <bits/stdc++.h>
using namespace std;
int a[20], b[20], c[20], f[13][8][8][8][8][2], g[13][8][8][8][8][2][8];
long long a_, b_, c_;
long long d[20];
void Read_T(int &x) {
  char ch;
  while ((ch = getchar()) && (ch < '0' || ch > '9'))
    ;
  x = ch - '0';
  while ((ch = getchar()) && ch >= '0' && ch <= '9') x = x * 10 + ch - '0';
}
void Work(int l, int i, int j, int k, int v, int w) {
  int l_ = l - 1;
  int i_ = g[l][i][j][k][v][w][0];
  int j_ = g[l][i][j][k][v][w][1];
  int k_ = g[l][i][j][k][v][w][2];
  int v_ = g[l][i][j][k][v][w][3];
  int w_ = g[l][i][j][k][v][w][4];
  int x = g[l][i][j][k][v][w][5];
  int y = g[l][i][j][k][v][w][6];
  int z = g[l][i][j][k][v][w][7];
  a_ += d[l_] * (x == -1 ? 0 : x);
  b_ += d[l_] * (y == -1 ? 0 : y);
  c_ += d[l_] * (z == -1 ? 0 : z);
  if (l_ == 0) return;
  Work(l_, i_, j_, k_, v_, w_);
}
int main() {
  int x, y, z, la, lb, lc;
  for (Read_T(x), la = 0; x; x /= 10) a[la++] = x % 10;
  for (Read_T(x), lb = 0; x; x /= 10) b[lb++] = x % 10;
  for (Read_T(x), lc = 0; x; x /= 10) c[lc++] = x % 10;
  for (int l = 0; l <= 12; l++)
    for (int i = 0; i <= la; i++)
      for (int j = 0; j <= lb; j++)
        for (int k = 0; k <= lc; k++)
          for (int v = 0; v < 8; v++)
            for (int w = 0; w < 2; w++) f[l][i][j][k][v][w] = 100;
  f[0][0][0][0][7][0] = 0;
  for (int l = 0; l < 12; l++)
    for (int i = 0; i <= la; i++)
      for (int j = 0; j <= lb; j++)
        for (int k = 0; k <= lc; k++)
          for (int v = 0; v < 8; v++)
            for (int w = 0; w < 2; w++) {
              if (f[l][i][j][k][v][w] == 100) continue;
              for (x = -1; x < 10; x++) {
                if (x == -1 && i < la) continue;
                if (!(v >> 0 & 1) && x != -1) continue;
                for (y = -1; y < 10; y++) {
                  if (y == -1 && j < lb) continue;
                  if (!(v >> 1 & 1) && y != -1) continue;
                  z = ((x == -1 ? 0 : x) + (y == -1 ? 0 : y) + w) % 10;
                  if (z == -1 && k < lc) continue;
                  if (!(v >> 2 & 1) && z != -1) continue;
                  int i_ = i < la && a[i] == x ? i + 1 : i;
                  int j_ = j < lb && b[j] == y ? j + 1 : j;
                  int k_ = k < lc && c[k] == z ? k + 1 : k;
                  int v_ = (1 << 0) * (x != -1) + (1 << 1) * (y != -1) +
                           (1 << 2) * (z != -1);
                  int w_ = (x == -1 ? 0 : x) + (y == -1 ? 0 : y) + w > 9;
                  int ret = (x != -1) + (y != -1) + (z != -1);
                  if (f[l][i][j][k][v][w] + ret <
                      f[l + 1][i_][j_][k_][v_][w_]) {
                    f[l + 1][i_][j_][k_][v_][w_] = f[l][i][j][k][v][w] + ret;
                    g[l + 1][i_][j_][k_][v_][w_][0] = i;
                    g[l + 1][i_][j_][k_][v_][w_][1] = j;
                    g[l + 1][i_][j_][k_][v_][w_][2] = k;
                    g[l + 1][i_][j_][k_][v_][w_][3] = v;
                    g[l + 1][i_][j_][k_][v_][w_][4] = w;
                    g[l + 1][i_][j_][k_][v_][w_][5] = x;
                    g[l + 1][i_][j_][k_][v_][w_][6] = y;
                    g[l + 1][i_][j_][k_][v_][w_][7] = z;
                  }
                }
              }
            }
  int res = 100;
  int ll, vv;
  for (int l = 0; l <= 12; l++)
    for (int v = 0; v < 8; v++)
      if (f[l][la][lb][lc][v][0] < res) {
        res = f[l][la][lb][lc][v][0];
        ll = l;
        vv = v;
      }
  d[0] = 1;
  for (int i = 1; i <= 15; i++) d[i] = d[i - 1] * 10;
  a_ = b_ = c_ = 0;
  Work(ll, la, lb, lc, vv, 0);
  printf("%I64d+%I64d=%I64d\n", a_, b_, c_);
  return 0;
}
