#include <bits/stdc++.h>
char s[2000005];
int sign[2000005], o[2000005], n, m, L;
int main() {
  scanf("%s", s), n = strlen(s), m = 0;
  for (int i = 0; i < n; i++) {
    int x = s[n - 1 - i] - 48;
    if (x) {
      if (m == 1) o[L++] = i - 1;
      m += m < 2;
    } else if (m == 1)
      sign[L] = 1, o[L++] = i + m - 2, m = 0;
    else if (m == 2)
      m--;
  }
  if (m) sign[L] = 1, o[L++] = n + m - 2;
  printf("%d\n", L);
  for (int i = 0; i < L; i++) printf("%c2^%d\n", sign[i] ? '+' : '-', o[i]);
  return 0;
}
