#include <bits/stdc++.h>
int sign[1000010], l, ans;
char s[1000010];
int main() {
  gets(s);
  l = strlen(s);
  for (int i = 1; i <= l; ++i) sign[i] = s[i - 1] - '0';
  for (int i = l, j; i >= 0;)
    if (!sign[i])
      --i;
    else {
      j = i;
      while (sign[j]) --j;
      ++ans;
      if (i - j >= 2) {
        sign[j] = 1;
        sign[i] = -1;
        for (int k = j + 1; k < i; ++k) sign[k] = 0;
      }
      i = j;
    }
  printf("%d\n", ans);
  for (int i = l; i >= 0; --i) {
    if (!sign[i]) continue;
    if (sign[i] == 1)
      printf("+");
    else
      printf("-");
    printf("2^%d\n", l - i);
  }
  return 0;
}
