#include<bits/stdc++.h>
#define f1(i, n) for(ll i=1;i<=n;++i)
#define f0(i, n) for(ll i=0;i<n;++i)
#define ull unsigned long long
#define ll long long
#define rev(a) reverse(a.begin(),a.end())
#define all(x) x.begin(),x.end()
#define so(A, n) sort(A+1, A+n+1)
using namespace std;
const int maxn = 200010;
const int N = 1e6 + 1;
void solve2() {
ll n, k;
cin >> n >> k;
ll A[n + 1];
f1(i, n) cin >> A[i];
ll left = 1, right = LLONG_MAX - 1, res = 0;
while (left <= right) {
ll mid = (left + right) / 2, cnt = 0;
for (int i = 1; i <= n; ++i) {
cnt += A[i] / mid;
}
if (cnt >= k) {
res = max(res, mid);
left = mid + 1;
}
else {
right = mid - 1;
}
}
cout << res;
}
ll convert(string s) {
ll sum = 0;
int last = 0;
for (int i = 1; i < s.size(); ++i) {if (s[i] == '+' || s[i] == '-') {last = i; break;} sum = sum * 10 + s[i] - 48;}
if (s[0] != '-') sum += (s[0] - 48) * pow(10, last - 1);
else sum *= -1;
for (int i = last; i < s.size(); ++i) {
if (s[i] == '+' || s[i] == '-') {
int num = 0;
for (int j = i + 1; j < s.size(); ++j) {
if (s[j] == '+' || s[j] == '-') break;
num = num * 10 + (s[j] - 48);
}
if (s[i] == '+') sum += num;
else sum -= num;
}
}
return sum;
}
void solve3() {
string s;
int m;
cin >> s >> m;
int n = pow(3, s.size()) - 1;
int v[s.size() + 2];
vector<string> xau;
int res = 0;
for (int i = 0; i <= n; ++i) {
for (int j = 0; j < s.size(); ++j) v[j] = 0;
int a = i, d = 0;
while (a != 0) {
v[d] = a % 3;
a /= 3;
++d;
}
string motcaigiday = s;
int cnt = 0;
for (int j = 0; j < s.size(); ++j) {
if (v[j] == 1) {
motcaigiday.insert(motcaigiday.begin() + j + cnt, '+');
++cnt;
}
else if (v[j] == 2) {
motcaigiday.insert(motcaigiday.begin() + j + cnt, '-');
++cnt;
}
}
if (motcaigiday[0] == '+') continue;
if (convert(motcaigiday) == m) {
res++;
xau.push_back(motcaigiday);
}
}
cout << res << "\n";
f0(i, xau.size()) cout << xau[i] << "\n";
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
// freopen("pay.inp","r",stdin);
// freopen("pay.out","w",stdout);
solve3();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmMShpLCBuKSBmb3IobGwgaT0xO2k8PW47KytpKQojZGVmaW5lIGYwKGksIG4pIGZvcihsbCBpPTA7aTxuOysraSkKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcmV2KGEpIHJldmVyc2UoYS5iZWdpbigpLGEuZW5kKCkpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSx4LmVuZCgpCiNkZWZpbmUgc28oQSwgbikgc29ydChBKzEsIEErbisxKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgbWF4biA9IDIwMDAxMDsKY29uc3QgaW50IE4gPSAxZTYgKyAxOwoKdm9pZCBzb2x2ZTIoKSB7CglsbCBuLCBrOwoJY2luID4+IG4gPj4gazsKCWxsIEFbbiArIDFdOwoJZjEoaSwgbikgY2luID4+IEFbaV07CglsbCBsZWZ0ID0gMSwgcmlnaHQgPSBMTE9OR19NQVggLSAxLCByZXMgPSAwOwoJd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHsKCQlsbCBtaWQgPSAobGVmdCArIHJpZ2h0KSAvIDIsIGNudCA9IDA7CgkJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CgkJCWNudCArPSBBW2ldIC8gbWlkOwoJCX0KCQlpZiAoY250ID49IGspIHsKCQkJcmVzID0gbWF4KHJlcywgbWlkKTsKCQkJbGVmdCA9IG1pZCArIDE7CgkJfQoJCWVsc2UgewoJCQlyaWdodCA9IG1pZCAtIDE7CgkJfQoJfQoJY291dCA8PCByZXM7Cn0KbGwgY29udmVydChzdHJpbmcgcykgewoJbGwgc3VtID0gMDsKCWludCBsYXN0ID0gMDsKCWZvciAoaW50IGkgPSAxOyBpIDwgcy5zaXplKCk7ICsraSkge2lmIChzW2ldID09ICcrJyB8fCBzW2ldID09ICctJykge2xhc3QgPSBpOyBicmVhazt9IHN1bSA9IHN1bSAqIDEwICsgc1tpXSAtIDQ4O30KCWlmIChzWzBdICE9ICctJykgc3VtICs9IChzWzBdIC0gNDgpICogcG93KDEwLCBsYXN0IC0gMSk7CgllbHNlIHN1bSAqPSAtMTsKCWZvciAoaW50IGkgPSBsYXN0OyBpIDwgcy5zaXplKCk7ICsraSkgewoJCWlmIChzW2ldID09ICcrJyB8fCBzW2ldID09ICctJykgewoJCQlpbnQgbnVtID0gMDsKCQkJZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgcy5zaXplKCk7ICsraikgewoJCQkJaWYgKHNbal0gPT0gJysnIHx8IHNbal0gPT0gJy0nKSBicmVhazsKCQkJCW51bSA9IG51bSAqIDEwICsgKHNbal0gLSA0OCk7CgkJCX0KCQkJaWYgKHNbaV0gPT0gJysnKSBzdW0gKz0gbnVtOwoJCQllbHNlIHN1bSAtPSBudW07CgkJfQoJfQoJcmV0dXJuIHN1bTsKfQp2b2lkIHNvbHZlMygpIHsKCXN0cmluZyBzOwoJaW50IG07CgljaW4gPj4gcyA+PiBtOwoJaW50IG4gPSBwb3coMywgcy5zaXplKCkpIC0gMTsKCWludCB2W3Muc2l6ZSgpICsgMl07Cgl2ZWN0b3I8c3RyaW5nPiB4YXU7CglpbnQgcmVzID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDw9IG47ICsraSkgewoJCWZvciAoaW50IGogPSAwOyBqIDwgcy5zaXplKCk7ICsraikgdltqXSA9IDA7CgkJaW50IGEgPSBpLCBkID0gMDsKCQl3aGlsZSAoYSAhPSAwKSB7CgkJCXZbZF0gPSBhICUgMzsKCQkJYSAvPSAzOwoJCQkrK2Q7CgkJfQoJCXN0cmluZyBtb3RjYWlnaWRheSA9IHM7CgkJaW50IGNudCA9IDA7CgkJZm9yIChpbnQgaiA9IDA7IGogPCBzLnNpemUoKTsgKytqKSB7CgkJCWlmICh2W2pdID09IDEpIHsKCQkJCW1vdGNhaWdpZGF5Lmluc2VydChtb3RjYWlnaWRheS5iZWdpbigpICsgaiArIGNudCwgJysnKTsKCQkJCSsrY250OwoJCQl9CgkJCWVsc2UgaWYgKHZbal0gPT0gMikgewoJCQkJbW90Y2FpZ2lkYXkuaW5zZXJ0KG1vdGNhaWdpZGF5LmJlZ2luKCkgKyBqICsgY250LCAnLScpOwoJCQkJKytjbnQ7CgkJCX0KCQl9CgkJaWYgKG1vdGNhaWdpZGF5WzBdID09ICcrJykgY29udGludWU7CgkJaWYgKGNvbnZlcnQobW90Y2FpZ2lkYXkpID09IG0pIHsKCQkJcmVzKys7CgkJCXhhdS5wdXNoX2JhY2sobW90Y2FpZ2lkYXkpOwoJCX0KCX0KCWNvdXQgPDwgcmVzIDw8ICJcbiI7CglmMChpLCB4YXUuc2l6ZSgpKSBjb3V0IDw8IHhhdVtpXSA8PCAiXG4iOwp9CmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgoJLy8gZnJlb3BlbigicGF5LmlucCIsInIiLHN0ZGluKTsKCS8vIGZyZW9wZW4oInBheS5vdXQiLCJ3IixzdGRvdXQpOwoJc29sdmUzKCk7CgoKCXJldHVybiAwOwp9Cgo=