#include <bits/stdc++.h>
using namespace std;
char s[1000005];
vector<int> v;
int main() {
  int i, j, k, m, n;
  while (scanf("%s", s + 1) != EOF) {
    s[0] = '0';
    n = strlen(s);
    v.clear();
    for (i = n - 1; i >= 0;) {
      if (s[i] == '1') {
        if (i == 0 || s[i - 1] == '0') {
          v.push_back(n - i);
          --i;
        } else {
          for (j = i - 1; j >= 0; --j) {
            if (s[j] == '1')
              continue;
            else
              break;
          }
          v.push_back(-(n - i));
          s[j] = '1';
          i = j;
        }
      } else
        --i;
    }
    cout << v.size() << endl;
    for (i = 0; i < v.size(); ++i) {
      if (v[i] > 0)
        printf("+2^%d\n", v[i] - 1);
      else
        printf("-2^%d\n", -v[i] - 1);
    }
  }
}
