#include <bits/stdc++.h>
using namespace std;
int i, j, k, n, m, cnt, l, num;
int a[1000010], b[1000010], s[1000010];
char p[1000010];
int main() {
  scanf("%s", p);
  n = strlen(p);
  for (i = 0, j = n - 1; i <= j; i++, j--) swap(p[i], p[j]);
  for (i = 0; i < n; i = j + 1) {
    for (; i < n && p[i] == '0'; i++)
      ;
    for (j = i; j + 1 < n && p[j + 1] == p[i]; j++)
      ;
    if (j > i)
      s[++num] = -i - 1, p[j + 1] = '1';
    else
      s[++num] = i;
  }
  if (p[n] == '1') s[++num] = n;
  for (i = 1; i < num; i++) {
    if (s[i] >= 0 && s[i + 1] < 0 && -s[i + 1] - s[i] == 2) {
      s[i + 1] = 1000010;
      s[i] = -s[i] - 1;
      i++;
      k++;
    }
  }
  printf("%d\n", num - k);
  for (i = 1; i <= num; i++)
    if (s[i] != 1000010)
      printf("%c2^%d\n", s[i] >= 0 ? '+' : '-', s[i] >= 0 ? s[i] : -(s[i] + 1));
  return 0;
}
