#include <bits/stdc++.h>
using namespace std;
const int maxn = 300010;
char c[maxn];
long long ans[3];
int s[3], v[4][maxn], t;
int main() {
  scanf("%d", &t);
  if (t == 1) {
    scanf("%s", c);
    putchar(c[0]);
    putchar('\n');
    putchar(c[0]);
    putchar('\n');
    putchar(c[0]);
    putchar('\n');
    return 0;
  }
  scanf("%s", c);
  do {
    t = 0;
    ans[0] = 0;
    s[0] = s[1] = s[2] = 0;
    while (c[t + 2] >= '0' && c[t + 2] <= '9') {
      if (rand() % 2 == 0 || c[t] == '0') {
        v[0][++s[0]] = c[t] - '0';
        ans[0] += v[0][s[0]];
        t++;
      } else {
        v[0][++s[0]] = (c[t] - '0') * 10 + c[t + 1] - '0';
        ans[0] += v[0][s[0]];
        t += 2;
      }
    }
    if (c[t + 1] >= '0' && c[t + 1] <= '9' && c[t] > '0') {
      v[0][++s[0]] = (c[t] - '0') * 10 + c[t + 1] - '0';
      ans[0] += v[0][s[0]];
      t += 2;
    }
    while (c[t] >= '0' && c[t] <= '9') {
      v[0][++s[0]] = c[t] - '0';
      ans[0] += v[0][s[0]];
      t++;
    }
    for (int g = 1; g <= 2; g++) {
      int now = ans[g - 1];
      s[g] = 0;
      ans[g] = 0;
      while (now) {
        v[g][++s[g]] = now % 10;
        ans[g] += now % 10;
        now /= 10;
      }
    }
    t = s[1] - 1;
    for (int t1 = 0; t1 <= t; t1++)
      for (int t2 = t1; t2 <= t; t2++)
        if (ans[2] >= 10) {
          int g = 1;
          int now = ans[g - 1];
          s[g] = 0;
          ans[g] = 0;
          while (now) {
            v[g][++s[g]] = now % 10;
            now /= 10;
            if ((s[g] == t1 || s[g] == t2) && now % 10 != 0) {
              v[g][s[g]] = v[g][s[g]] + now % 10 * 10;
              now /= 10;
              if ((s[g] == t1 && s[g] == t2) && now % 10 != 0) {
                v[g][s[g]] = v[g][s[g]] + now % 10 * 100;
                now /= 10;
              }
            }
            if ((s[g] == t1 && s[g] == t2) && now % 10 == 0 && now % 100 != 0) {
              now /= 10;
              v[g][s[g]] = v[g][s[g]] + now % 10 * 100;
              now /= 10;
            }
            ans[g] += v[g][s[g]];
          }
          g = 2;
          now = ans[g - 1];
          s[g] = 0;
          ans[g] = 0;
          while (now) {
            v[g][++s[g]] = now % 10;
            ans[g] += now % 10;
            now /= 10;
          }
        }
  } while (ans[2] >= 10);
  int g = 0;
  if (v[g][1] < 10)
    putchar(v[g][1] + '0');
  else {
    t = 0;
    while (v[g][1]) {
      v[3][++t] = v[g][1] % 10;
      v[g][1] /= 10;
    }
    putchar(v[3][t] + '0');
    for (int i = t - 1; i; i--) {
      putchar(v[3][i] + '0');
    }
  }
  for (int i = 2; i <= s[0]; i++) {
    if (v[g][i] < 10) {
      putchar('+');
      putchar(v[g][i] + '0');
    } else {
      putchar('+');
      t = 0;
      while (v[g][i]) {
        v[3][++t] = v[g][i] % 10;
        v[g][i] /= 10;
      }
      for (int j = t; j; j--) {
        putchar(v[3][j] + '0');
      }
    }
  }
  putchar('\n');
  for (int g = 1; g <= 2; g++) {
    if (v[g][s[g]] < 10)
      putchar(v[g][s[g]] + '0');
    else {
      t = 0;
      while (v[g][s[g]]) {
        v[0][++t] = v[g][s[g]] % 10;
        v[g][s[g]] /= 10;
      }
      putchar(v[0][t] + '0');
      for (int i = t - 1; i; i--) {
        putchar(v[0][i] + '0');
      }
    }
    for (int i = s[g] - 1; i; i--) {
      if (v[g][i] < 10) {
        putchar('+');
        putchar(v[g][i] + '0');
      } else {
        putchar('+');
        t = 0;
        while (v[g][i]) {
          v[0][++t] = v[g][i] % 10;
          v[g][i] /= 10;
        }
        for (int j = t; j; j--) {
          putchar(v[0][j] + '0');
        }
      }
    }
    putchar('\n');
  }
}
