#include <bits/stdc++.h>
using namespace std;
int ans, ansa, ansb;
long long mi[19];
inline int getint() {
  int w = 0, q = 0;
  char c = getchar();
  while ((c < '0' || c > '9') && c != '-') c = getchar();
  if (c == '-') q = 1, c = getchar();
  while (c >= '0' && c <= '9') w = w * 10 + c - '0', c = getchar();
  return q ? -w : w;
}
inline void dfs(long long a, long long b, long long c, long long nowa,
                long long nowb, long long jin, int nowl, int wei) {
  if (nowl >= ans) return;
  if (a == 0 && b == 0 && c == 0 && jin == 0) {
    ans = nowl;
    ansa = nowa;
    ansb = nowb;
    return;
  }
  if (c == 0) {
    int tot = 0;
    long long lin = a + b + jin;
    while (lin) tot++, lin /= 10;
    dfs(0, 0, 0, nowa + a * mi[wei], nowb + b * mi[wei], 0, nowl + tot, wei);
    return;
  }
  if ((a + b + jin) % 10 == c % 10)
    dfs(a / 10, b / 10, c / 10, nowa + a % 10 * mi[wei],
        nowb + b % 10 * mi[wei], (a % 10 + b % 10 + jin) / 10, nowl, wei + 1);
  else {
    dfs(a * 10 + (c + 10 - b % 10 - jin) % 10, b, c, nowa, nowb, jin, nowl + 1,
        wei);
    dfs(a, b * 10 + (c + 10 - a % 10 - jin) % 10, c, nowa, nowb, jin, nowl + 1,
        wei);
    dfs(a, b, c * 10 + (a + b + jin) % 10, nowa, nowb, jin, nowl + 1, wei);
  }
}
inline void work() {
  int a, b, c;
  scanf("%d+%d=%d", &a, &b, &c);
  ans = 12;
  mi[0] = 1;
  for (int i = 1; i <= 18; i++) mi[i] = mi[i - 1] * 10;
  dfs(a, b, c, 0, 0, 0, 0, 0);
  printf("%d+%d=%d", ansa, ansb, ansa + ansb);
}
int main() {
  work();
  return 0;
}
