#include <bits/stdc++.h>
using namespace std;
char s[1 << 20];
int a[1 << 20];
int main() {
  gets(s);
  int n = strlen(s), i, k = 0;
  reverse(s, s + n);
  for (i = 0; i < (n); ++i) a[i] = (s[i] == '1');
  for (i = 0; i < (n); ++i)
    if (a[i]) {
      if (a[i] == 1) {
        if (a[i + 1] == 1) {
          a[i] = -1;
          a[i + 1] = 0;
          ++a[i + 2];
        }
      }
      if (a[i] == 2) {
        a[i] = 0;
        ++a[i + 1];
      }
      if (a[i] == -1 && a[i + 1] == 1) {
        a[i + 1] = 0;
        a[i] = 1;
      }
    }
  n += 2;
  for (i = 0; i < (n); ++i)
    if (a[i]) ++k;
  printf("%d\n", k);
  for (i = 0; i < (n); ++i)
    if (a[i]) printf("%c2^%d\n", ~a[i] ? '+' : '-', i);
  return 0;
}
