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