#include <bits/stdc++.h>
using namespace std;
int n, tot, p[99], cnt;
char s[2000010], sig[2000010];
bool calc(int f) {
  int t = 0;
  while (f) t += f % 10, f /= 10;
  return t < 10;
}
void get(int tot) {
  cnt = 0;
  while (tot) {
    p[++cnt] = tot % 10;
    tot /= 10;
  }
  for (int i = 1, j = cnt; i <= j; i++, j--) {
    swap(p[i], p[j]);
  }
  for (int i = 0; i < (1 << (cnt - 1)); i++) {
    int now = i, f = 0, hs = p[1];
    for (int j = 2; j <= cnt; j++) {
      if (now & 1) {
        f += hs;
        hs = 0;
      }
      hs *= 10;
      hs += p[j];
      now >>= 1;
    }
    f += hs;
    if (calc(f)) {
      putchar(s[1]);
      for (int j = 2; j <= n; j++) {
        if (sig[j]) putchar('+');
        putchar(s[j]);
      }
      puts("");
      now = i;
      printf("%d", p[1]);
      for (int j = 2; j <= cnt; j++) {
        if (now & 1) printf("+");
        printf("%d", p[j]);
        now >>= 1;
      }
      puts("");
      cnt = 0;
      while (f) p[++cnt] = f % 10, f /= 10;
      for (int l = 1, r = cnt; l <= r; l++, r--) {
        swap(p[l], p[r]);
      }
      printf("%d", p[1]);
      for (int i = 2; i <= cnt; i++) {
        printf("+");
        printf("%d", p[i]);
      }
      exit(0);
    }
  }
}
int main() {
  scanf("%d%s", &n, s + 1);
  while (1) {
    int f = 0, hs = s[1] - '0', yima = 1;
    for (int i = 2; i <= n; i++) {
      sig[i] = rand() & 1;
      if ((!sig[i]) && yima >= 3) sig[i] = 1;
      if (sig[i]) {
        f += hs, hs = 0;
        yima = 0;
      } else
        yima++;
      hs = hs * 10 + s[i] - '0';
    }
    f += hs;
    get(f);
  }
}
