#include <bits/stdc++.h>
using namespace std;
char str[1000005];
int num[1000005];
int main() {
  int i, j, len, ans;
  while (scanf("%s", str) != EOF) {
    len = strlen(str);
    for (i = 0, j = len - 1; i < j; i++, j--) {
      swap(str[i], str[j]);
    }
    str[len] = '0';
    memset(num, 0, sizeof(num));
    ans = 0;
    for (i = 0; i <= len; i++) {
      if (str[i] == '1') {
        for (j = i + 1; j <= len; j++) {
          if (str[j] == '0') break;
        }
        if (j != i + 1) {
          num[j] = 1;
          num[i] = -1;
          str[j] = '1';
        } else {
          num[i] = 1;
        }
        i = j - 1;
      }
    }
    for (i = 0; i <= len; i++) {
      if (num[i]) ans++;
    }
    printf("%d\n", ans);
    for (i = 0; i <= len; i++) {
      if (num[i]) {
        if (num[i] == 1) printf("+");
        if (num[i] == -1) printf("-");
        printf("2^%d\n", i);
      }
    }
  }
  return 0;
}
