#include <bits/stdc++.h>
using namespace std;
char s[1000010];
int main() {
  while (scanf("%s", s) != EOF) {
    int n = strlen(s);
    for (int i = 0; i < n / 2; ++i) swap(s[i], s[n - 1 - i]);
    for (int i = 0, j; i < n; i = j) {
      if (s[i] == '0') {
        j = i + 1;
        continue;
      }
      for (j = i; s[j] == s[i]; ++j)
        ;
      if (j - i > 1) {
        for (int k = i + 1; k < j; ++k) s[k] = '0';
        s[j] = '1';
        s[i] = '2';
      }
    }
    int N = 0;
    for (int i = 0; i <= n; ++i)
      if (s[i] == '1' || s[i] == '2') ++N;
    printf("%d\n", N);
    for (int i = 0; i <= n; ++i)
      if (s[i] == '1' || s[i] == '2')
        printf("%c2^%d\n", s[i] == '1' ? '+' : '-', i);
  }
  return 0;
}
