#include <bits/stdc++.h>
using namespace std;
uint_fast64_t ss(uint_fast64_t n) {
  uint_fast64_t r = 0;
  while (n > 0) {
    r += n % 10;
    n /= 10;
  }
  return r;
}
bool find(uint_fast64_t sum, std::vector<uint_fast64_t> &res) {
  if (sum == 0) {
    return ss(std::accumulate(res.begin(), res.end(), 0ull)) < 10;
  }
  for (uint_fast64_t i = 10; sum * 100 > i; i *= 10) {
    res.push_back(sum % i);
    if (find(sum / i, res)) return true;
    res.pop_back();
  }
  return false;
}
template <typename T>
void print_vector(std::vector<T> v) {
  for (uint_fast64_t i = 0; i < v.size(); ++i) {
    std::cout << v[i];
    if (i != v.size() - 1)
      std::cout << "+";
    else
      std::cout << std::endl;
  }
}
std::vector<std::string> partition(const std::string &s) {
  std::vector<std::string> p;
  for (int i = 0; i < s.size();) {
    const int sz = min<int>(s.size() - i, rand() % 2 + 1);
    p.push_back(s.substr(i, sz));
    i += sz;
  }
  return p;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  uint_fast64_t n;
  std::string s, o1;
  std::cin >> n >> s;
  bool found = false;
  while (!found) {
    const auto p = partition(s);
    uint_fast64_t sum = 0;
    for (const auto &c : p) {
      sum += stoll(c);
    }
    std::vector<uint_fast64_t> res, res2;
    if (!find(sum, res)) continue;
    found = true;
    print_vector(p);
    std::reverse(res.begin(), res.end());
    print_vector(res);
    uint_fast64_t rr = std::accumulate(res.begin(), res.end(), 0ull);
    while (rr > 0) {
      res2.push_back(rr % 10);
      rr /= 10;
    }
    std::reverse(res2.begin(), res2.end());
    print_vector(res2);
  }
  return 0;
}
