#include <bits/stdc++.h>
using namespace std;
int now[15][3], ans[15][3], nA, nB, nC, minN = 12, cnt, t[13];
void dfs(int a, int b, int c, int num, int jw, int cou, bool ifA, bool ifB) {
  if (!a && !b && !c && !jw) {
    minN = num;
    cnt = cou;
    memcpy(ans, now, sizeof(now));
    return;
  }
  if (a % 10 + b % 10 - c % 10 + jw == 0 && c)
    dfs(a / 10, b / 10, c / 10, num, 0, cou + 1, a ? 0 : 1, b ? 0 : 1);
  else if (a % 10 + b % 10 - c % 10 + jw == 10 && c)
    dfs(a / 10, b / 10, c / 10, num, 1, cou + 1, a ? 0 : 1, b ? 0 : 1);
  else {
    if (minN - ++num <= 0) return;
    now[num][2] = ++cou;
    if (!ifA && c) {
      now[num][0] = 1;
      now[num][1] = (c % 10 - b % 10 - jw + 10) % 10;
      bool f = ifB;
      if (!b) ifB = 1;
      dfs(a, b / 10, c / 10, num, (now[num][1] + b % 10 + jw - c % 10) / 10,
          cou, ifA, ifB);
      ifB = f;
    }
    if (!ifB && c) {
      now[num][0] = 2;
      now[num][1] = (c % 10 - a % 10 + 10 - jw) % 10;
      bool f = ifA;
      if (a == 0) ifA = 1;
      dfs(a / 10, b, c / 10, num, (now[num][1] + a % 10 + jw - c % 10) / 10,
          cou, ifA, ifB);
      ifA = f;
    }
    now[num][0] = 3;
    now[num][1] = (a % 10 + b % 10 + jw) % 10;
    if (!a) ifA = 1;
    if (!b) ifB = 1;
    dfs(a / 10, b / 10, c, num, (a % 10 + b % 10 + jw - now[num][1]) / 10, cou,
        ifA, ifB);
  }
}
int main() {
  int a, b, c;
  bool f;
  scanf("%d+%d=%d", &a, &b, &c);
  dfs(a, b, c, 0, 0, 0, 0, 0);
  int p = 1;
  while (p <= minN && ans[p][0] - 1) p++;
  for (int i = 1; i <= cnt; i++)
    if (p <= minN && ans[p][2] == i) {
      t[i] = ans[p++][1];
      while (p <= minN && ans[p][0] - 1) p++;
    } else {
      t[i] = a % 10;
      a /= 10;
    }
  f = 0;
  for (int i = cnt; i; i--)
    if (f || t[i]) {
      putchar(t[i] + '0');
      f = 1;
    }
  putchar('+');
  p = 1;
  while (p <= minN && ans[p][0] - 2) p++;
  for (int i = 1; i <= cnt; i++)
    if (p <= minN && ans[p][2] == i) {
      t[i] = ans[p++][1];
      while (p <= minN && ans[p][0] - 2) p++;
    } else {
      t[i] = b % 10;
      b /= 10;
    }
  f = 0;
  for (int i = cnt; i; i--)
    if (f || t[i]) {
      putchar(t[i] + '0');
      f = 1;
    }
  putchar('=');
  p = 1;
  while (p <= minN && ans[p][0] - 3) p++;
  for (int i = 1; i <= cnt; i++)
    if (p <= minN && ans[p][2] == i) {
      t[i] = ans[p][1];
      p++;
      while (p <= minN && ans[p][0] - 3) p++;
    } else {
      t[i] = c % 10;
      c /= 10;
    }
  f = 0;
  for (int i = cnt; i; i--)
    if (f || t[i]) {
      putchar(t[i] + '0');
      f = 1;
    }
  return 0;
}
