#include <bits/stdc++.h>
using namespace std;
int gi() {
  int res = 0, fh = 1;
  char ch = getchar();
  while ((ch > '9' || ch < '0') && ch != '-') ch = getchar();
  if (ch == '-') fh = -1, ch = getchar();
  while (ch >= '0' && ch <= '9') res = res * 10 + ch - '0', ch = getchar();
  return fh * res;
}
const int MAXN = 100001;
const int INF = 1e9;
const int K = 13;
long long a, b, c, sa, sb, d[K];
int gl = K;
void dfs(long long a, long long b, long long c, long long ga, long long gb,
         long long gc, int l, int p) {
  if (l >= gl) return;
  if (!a && !b && !c && !gc) {
    sa = ga;
    sb = gb;
    gl = l;
    return;
  }
  if (!c) {
    int k = 0;
    for (long long tmp = a + b + gc; tmp; tmp /= 10) k++;
    dfs(0, 0, 0, a * d[p] + ga, b * d[p] + gb, 0, l + k, p);
    return;
  }
  if ((a + b + gc) % 10 == c % 10)
    dfs(a / 10, b / 10, c / 10, d[p] * (a % 10) + ga, d[p] * (b % 10) + gb,
        (a % 10 + b % 10 + gc) / 10, l, p + 1);
  else {
    dfs(a * 10 + (c + 10 - b % 10 - gc) % 10, b, c, ga, gb, gc, l + 1, p);
    dfs(a, b * 10 + (c + 10 - a % 10 - gc) % 10, c, ga, gb, gc, l + 1, p);
    dfs(a, b, c * 10 + (a + b + gc) % 10, ga, gb, gc, l + 1, p);
  }
}
int main() {
  scanf("%I64d+%I64d=%I64d", &a, &b, &c);
  d[0] = 1;
  for (int i = 1; i < K; i++) d[i] = d[i - 1] * 10;
  dfs(a, b, c, 0, 0, 0, 0, 0);
  printf("%I64d+%I64d=%I64d", sa, sb, sa + sb);
  return 0;
}
