#include <bits/stdc++.h>
using namespace std;
const int N = 1002000;
int f[N];
char str[N];
int main() {
  int i, n, k, j;
  gets(str);
  n = strlen(str);
  for (i = 0; i + i < n; i++) swap(str[i], str[n - i - 1]);
  for (i = 0; i < n; i++) f[i] = str[i] - '0';
  for (i = 0; i < n + 2;) {
    if (!f[i])
      i++;
    else {
      for (j = i; f[j]; j++)
        ;
      if (j - i >= 2) {
        f[i] = -1;
        for (k = i + 1; k < j; k++) f[k] = 0;
        f[j] = 1;
      }
      i = j;
    }
  }
  int s = 0;
  for (i = 0; i < n + 2; i++) s += !!f[i];
  printf("%d\n", s);
  for (i = 0; i < n + 2; i++)
    if (f[i] > 0)
      printf("+2^%d\n", i);
    else if (f[i] < 0)
      printf("-2^%d\n", i);
}
