#include <bits/stdc++.h>
using namespace std;
int n;
int t;
char c[20000010];
int first[20000010], num, len[2000020];
bool solve() {
  int now = t, zong = 0;
  num = 0;
  while (now) {
    if (rand() % 100 || now <= 2)
      first[++num] = c[now] - '0', len[num] = 1, now -= 1;
    else
      first[++num] = (c[now - 1] - '0') * 10 + (c[now] - '0'), len[num] = 2,
      now -= 2;
    zong += first[num];
  }
  int th = 0;
  while (zong) {
    th += zong % 10;
    ;
    zong /= 10;
  }
  zong = th;
  th = 0;
  while (zong) {
    th += zong % 10;
    ;
    zong /= 10;
  }
  if (th < 10) return 0;
  return 1;
}
int main() {
  srand(time(NULL));
  scanf("%d", &t);
  scanf("%s", c + 1);
  while (solve())
    ;
  int zong = 0;
  for (int i = num; i >= 1; --i) {
    if (len[i] == 2 && first[i] < 10) printf("0");
    printf("%d%c", first[i], i == 1 ? '\n' : '+');
    zong += first[i];
  }
  num = 0;
  int now = zong;
  zong = 0;
  while (now) {
    first[++num] = now % 10, now /= 10;
  }
  for (int i = num; i >= 1; --i) {
    printf("%d%c", first[i], i == 1 ? '\n' : '+');
    zong += first[i];
  }
  num = 0;
  now = zong;
  zong = 0;
  while (now) {
    first[++num] = now % 10, now /= 10;
  }
  for (int i = num; i >= 1; --i) {
    printf("%d%c", first[i], i == 1 ? '\n' : '+');
    zong += first[i];
  }
  if (zong >= 10)
    while (1)
      ;
}
