#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
template <class T, class V>
ostream &operator<<(ostream &s, pair<T, V> a) {
  s << a.first << ' ' << a.second;
  return s;
}
int calc(int n) {
  long long int x = 0;
  while (n) x += n % 10, n /= 10;
  return x;
}
long long int calc(string &s) {
  long long int x = 0, y = 0;
  for (auto c : s) {
    if (c == '+')
      x += y, y = 0;
    else
      y = y * 10 + c - '0';
    if (y > 1e9) return -1;
  }
  return x + y;
}
bool solve(string &s) {
  long long int n = calc(s);
  if (n == -1) return false;
  long long int u = n;
  string t;
  while (n) t.push_back((char)(n % 10 + '0')), n /= 10;
  reverse(t.begin(), t.end());
  if (calc(u) < 10) {
    cout << s << endl;
    cout << t << endl;
    for (int i = 0; i + 1 < t.size(); i++) cout << t[i] << '+';
    cout << t.back() << endl;
    return true;
  }
  u = t.size() - 1;
  for (int i = 1; i < (1 << u); i++) {
    long long int x = 0;
    long long int y = t[0] - '0';
    for (int j = 0; j < u; j++) {
      if ((((i) & (1LL << (j))) != 0)) x += y, y = 0;
      y = (y * 10 + t[j + 1] - '0');
    }
    x += y;
    if (calc(x) < 10) {
      cout << s << endl;
      string d;
      d.push_back(t[0]);
      for (int j = 0; j < u; j++) {
        if ((((i) & (1LL << (j))) != 0)) d.push_back('+');
        d.push_back(t[j + 1]);
      }
      cout << d << endl;
      d.clear();
      while (x) d.push_back((char)(x % 10 + '0')), d.push_back('+'), x /= 10;
      d.pop_back();
      reverse(d.begin(), d.end());
      cout << d << endl;
      return true;
    }
  }
  return false;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  long long int T = 1;
  for (long long int qq = 1; qq <= T; qq++) {
    string s;
    long long int g;
    cin >> g;
    cin >> s;
    string c;
    long long int k = 0, nonzero = 0;
    for (auto x : s)
      c.push_back(x), c.push_back('+'), k++, nonzero += (x != '0');
    if (c.back() == '+') c.pop_back(), k--;
    int putback = -1;
    long long int o = 0;
    while (!solve(c)) {
      if (putback != -1) c.insert(c.begin() + putback, '+');
      long long int u = rng() % nonzero;
      for (int i = 0; i < c.size(); i++) {
        if (c[i] == '+' && c[i - 1] != '0' && (u--) == 0) {
          c.erase(c.begin() + i);
          putback = i;
          o++;
          if (o >= 5) putback = -1, o = 0, nonzero--;
          break;
        }
      }
    }
  }
}
