#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 100;
int read() {
  int ans = 0;
  bool f = 0;
  char ch = getchar();
  while (ch < '0' or ch > '9') {
    if (ch == '-') f = 1;
    ch = getchar();
  }
  while (ch >= '0' and ch <= '9') {
    ans = (ans << 1) + (ans << 3) + (ch ^ 48);
    ch = getchar();
  }
  return f ? ~ans + 1 : ans;
}
int n, op[maxn], cnt1, ji1[maxn], ji2[maxn], cnt2;
char s[maxn];
bool randmo() {
  if (rand() % 100) return 1;
  return 0;
}
int sj() {
  int ans = 0, now = 0;
  for (int i = 1; i <= n; ++i)
    if (op[i] = randmo())
      now = now * 10 + s[i] - '0', ans += now, now = 0;
    else
      now = now * 10 + s[i] - '0';
  return ans;
}
bool check(int x) {
  int ans = 0;
  cnt2 = cnt1 = 0;
  while (x) ji1[++cnt1] = x % 10, x /= 10, ans += ji1[cnt1];
  if (ans < 10) {
    ji2[++cnt2] = ans;
    return 1;
  }
  x = ans;
  ans = 0;
  while (x) ji2[++cnt2] = x % 10, x /= 10, ans += ji2[cnt2];
  return ans < 10;
}
int main() {
  srand(time(0));
  n = read();
  scanf("%s", s + 1);
  int tt = sj();
  while (!check(tt)) {
    tt = sj();
  }
  for (int i = 1; i <= n; ++i) {
    printf("%d", s[i] - '0');
    if (op[i] and i != n) printf("+");
  }
  printf("\n");
  for (int i = 1; i <= cnt1; ++i) {
    printf("%d", ji1[cnt1 - i + 1]);
    if (i != cnt1) printf("+");
  }
  printf("\n");
  for (int i = 1; i <= cnt2; ++i) {
    printf("%d", ji2[cnt2 - i + 1]);
    if (i != cnt2) printf("+");
  }
  return 0;
}
