#include <bits/stdc++.h>
using namespace std;
int f[1000015], sel[1000015], pre[1000015], ar[1000015], pos, L;
char s[1000015];
int main() {
  int i, j;
  scanf("%s", s + 1);
  L = strlen(s + 1);
  for (i = 1; i <= L; ++i) pre[i] = pre[i - 1] + (s[i] == '0');
  for (i = 1; i <= L; ++i) {
    sel[i] = i - 1;
    f[i] = f[i - 1] + (s[i] == '1');
    if (s[i] == '1') {
      if (2 + f[pos] + pre[i] - pre[pos] < f[i]) {
        f[i] = 2 + f[pos] + pre[i] - pre[pos];
        sel[i] = pos;
      }
    }
    if (s[i] == '0') {
      if (f[pos] - pre[pos] > f[i] - pre[i]) pos = i;
    }
  }
  for (i = L; i; i = sel[i]) {
    if (sel[i] == i - 1) {
      if (s[i] == '1') ++ar[i];
    } else {
      ++ar[sel[i]];
      --ar[i];
      for (j = sel[i] + 1; j <= i; ++j)
        if (s[j] == '0') --ar[j];
    }
  }
  printf("%d\n", f[L]);
  for (i = 0; i <= L; ++i)
    if (ar[i] == 1)
      printf("+2^%d\n", L - i);
    else if (ar[i] == -1)
      printf("-2^%d\n", L - i);
  return 0;
}
