#include <bits/stdc++.h>
using namespace std;
long long MOD = 1e9 + 7;
long long M = 550;
int n, k, p, t0;
string st = "";
vector<string> ans;
int main() {
  cin >> st;
  reverse(st.begin(), st.end());
  st += "00000";
  int p = 0;
  while (p < st.size()) {
    if (st[p] == '1') {
      if (p + 1 < st.size() && st[p + 1] == '1') {
        ans.push_back("-2^" + to_string(p));
        while (p + 1 < st.size() && st[p + 1] == '1') {
          p++;
          st[p] = '0';
        }
        st[p + 1] = '1';
      } else {
        ans.push_back("+2^" + to_string(p));
      }
    }
    p++;
  }
  cout << ans.size() << "\n";
  for (string s : ans) {
    cout << s << "\n";
  }
}
