#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
int ans = 20;
long long pow_10[30], ans_a, ans_b, ans_c;
void dfs(long long a, long long b, long long c, long long now_a,
         long long now_b, long long now_c, int step, int p, int po) {
  if (a == 0 && b == 0 && c == 0 && p == 0) {
    if (step < ans) {
      ans = step;
      ans_a = now_a;
      ans_b = now_b;
      ans_c = now_c;
    }
    return;
  }
  if (step >= ans) return;
  if (c == 0) {
    long long x = a + b + p;
    int cnt = 0;
    while (x) cnt++, x /= 10;
    dfs(0, 0, 0, now_a + a * pow_10[po], now_b + b * pow_10[po],
        now_c + (a + b + p) * pow_10[po], step + cnt, 0, po + 1);
    return;
  }
  int a1 = a % 10, b1 = b % 10, c1 = c % 10;
  if ((a1 + b1 + p) % 10 == c1)
    dfs(a / 10, b / 10, c / 10, now_a + a1 * pow_10[po],
        now_b + b1 * pow_10[po], now_c + c1 * pow_10[po], step,
        (a1 + b1 + p) / 10, po + 1);
  else {
    dfs(a * 10 + (c1 - b1 - p + 10) % 10, b, c, now_a, now_b, now_c, step + 1,
        p, po);
    dfs(a, b * 10 + (c1 - a1 - p + 10) % 10, c, now_a, now_b, now_c, step + 1,
        p, po);
    dfs(a, b, c * 10 + (a1 + b1 + p) % 10, now_a, now_b, now_c, step + 1, p,
        po);
  }
}
int main() {
  pow_10[0] = 1;
  for (int i = 1; i <= 18; i++) pow_10[i] = pow_10[i - 1] * 10;
  long long a, b, c;
  scanf("%lld+%lld=%lld", &a, &b, &c);
  dfs(a, b, c, 0, 0, 0, 0, 0, 0);
  printf("%lld+%lld=%lld\n", ans_a, ans_b, ans_c);
  return 0;
}
