#include <bits/stdc++.h>
using namespace std;
long long a, b, c, lena, lenb, lenc, ans = 1e9, ansa, ansb;
bool p = 0;
long long dig[12] = {1,         10,         100,         1000,
                     10000,     100000,     1000000,     10000000,
                     100000000, 1000000000, 10000000000, 1000000000};
int read() {
  int x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar();
  return f * x;
}
int getlen(long long x) {
  int len = 0;
  while (x) x /= 10, len++;
  return len;
}
void dfs(int a, int b, int c, long long na, long long nb, int addlen, int jin,
         int len) {
  if (addlen >= ans) return;
  if (!a && !b && !c && !jin) {
    ans = addlen;
    ansa = na;
    ansb = nb;
    return;
  }
  if (c == 0) {
    int tot = a + b + jin;
    dfs(0, 0, 0, na + a * dig[len], nb + b * dig[len], addlen + getlen(tot), 0,
        0);
    return;
  }
  if ((a % 10 + b % 10 + jin) % 10 == c % 10)
    dfs(a / 10, b / 10, c / 10, na + (a % 10) * dig[len],
        nb + (b % 10) * dig[len], addlen, (a % 10 + b % 10 + jin) / 10,
        len + 1);
  else {
    dfs(a * 10 + (c % 10 - b % 10 - jin + 10) % 10, b, c, na, nb, addlen + 1,
        jin, len);
    dfs(a, b * 10 + (c % 10 - a % 10 - jin + 10) % 10, c, na, nb, addlen + 1,
        jin, len);
    dfs(a, b, c * 10 + (a % 10 + b % 10 + jin) % 10, na, nb, addlen + 1, jin,
        len);
  }
}
int main() {
  a = read(), b = read(), c = read();
  dfs(a, b, c, 0, 0, 0, 0, 0);
  printf("%I64d+%I64d=%I64d", ansa, ansb, ansa + ansb);
}
