#include <bits/stdc++.h>
using namespace std;
stringstream ans;
int final_sum;
string print_line(string a0) {
  int S = 0;
  for (int i = 0; i < a0.size() - 1; i++) {
    int digit = a0[i] - '0';
    S += digit;
    ans << digit << "+";
  }
  int digit = a0[a0.size() - 1] - '0';
  S += digit;
  ans << digit << endl;
  final_sum = S;
  return to_string(S);
}
void print289(string a0) { print_line(print_line(print_line(a0))); }
void print999(string a0, int S, int offset = 0) {
  ans.str("");
  int i = 0;
  int nz = 0;
  int dt = 0;
  int ddd = 0;
  while (i < offset) {
    ans << a0[i] << "+";
    dt = 10 * dt + a0[i] - '0';
    ddd += a0[i] - '0';
    i++;
  }
  for (i += 1; i < a0.size() - 1; i += 2) {
    int a = a0[i - 1] - '0';
    int b = a0[i] - '0';
    int dt = 10 * a + b - a - b;
    S += dt;
    ans << a << b << "+";
    if (S >= 1000) break;
  }
  if (S < 1000 && i < a0.size()) {
    int a = a0[i - 1] - '0';
    int b = a0[i] - '0';
    int dt = 10 * a + b - a - b;
    S += dt;
    ans << a << b;
  }
  i++;
  for (i; i < a0.size() - 1; i++) ans << a0[i] << "+";
  for (i; i < a0.size(); i++) ans << a0[a0.size() - 1];
  ans << endl;
  print_line(print_line(to_string(S)));
}
bool is_close(int S) {
  if (S == 0) return true;
  int div = 1;
  while (S / div > 0) div *= 10;
  if (S * 10 == div) return true;
  return div - S < 1000;
}
bool is_mega_close(int S) {
  if (S == 0) return true;
  int div = 1;
  while (S / div > 0) div *= 10;
  if (S * 10 == div) return true;
  return S - (div / 10) < 100;
}
void print(string a0, int S, int offset = 0) {
  ans.str("");
  int i = 0;
  int nz = 0;
  int dt = 0;
  int ddd = 0;
  while (i < offset) {
    ans << a0[i] << "+";
    dt = dt * 10 + a0[i];
    ddd += a0[i] - '0';
    i++;
  }
  if (!is_close(S)) {
    for (i += 2; i < a0.size() - 2; i += 3) {
      int a = a0[i - 2] - '0';
      int b = a0[i - 1] - '0';
      int c = a0[i] - '0';
      int dt = 100 * a + 10 * b + c - a - b - c;
      S += dt;
      ans << a << b << c << "+";
      if (is_close(S)) break;
    }
    if (i < a0.size() - 2) i++;
  }
  if (!is_mega_close(S))
    for (i += 2; i < a0.size() - 2; i += 3) {
      int a = a0[i - 2] - '0';
      int b = a0[i - 1] - '0';
      int c = a0[i] - '0';
      int dt = 9 * a;
      S += dt;
      ans << a << b << "+" << c << "+";
      if (is_mega_close(S)) break;
    }
  if (i >= a0.size() - 2)
    i -= 2;
  else
    i++;
  for (i; i < a0.size() - 1; i++) ans << a0[i] << "+";
  for (i; i < a0.size(); i++) ans << a0[a0.size() - 1];
  ans << endl;
  print_line(print_line(to_string(S)));
}
int main() {
  int n;
  cin >> n;
  string a0;
  cin >> a0;
  int S = 0;
  for (int i = 0; i < a0.size(); i++) {
    int digit = a0[i] - '0';
    S += digit;
  }
  if (S < 199) {
    print289(a0);
    cout << ans.str();
    return 0;
  }
  if (S < 1000) {
    print999(a0, S);
    int k = 1;
    while (final_sum > 9 && k < 2) print999(a0, S, k++);
    if (false && n == 155096) {
      cout << k << endl;
      cout << final_sum << endl;
      return 0;
    }
    cout << ans.str();
    return 0;
  }
  print(a0, S);
  int k = 1;
  while (final_sum > 9 && k < 3) print(a0, S, k++);
  cout << ans.str();
  return 0;
}
