#include <bits/stdc++.h>
using namespace std;
char s[1000010];
int main() {
  int i, j, n;
  while (~scanf("%s", s)) {
    n = strlen(s);
    reverse(s, s + n);
    vector<int> a, b;
    for (i = 0; i <= n; i++)
      if (s[i] == '1') {
        j = i + 1;
        while (j < n && s[j] == '1') j++;
        if (j - i > 1) {
          a.push_back(i);
          s[j] = '1';
          i = j - 1;
        } else
          b.push_back(i);
      }
    int ans = a.size() + b.size();
    printf("%d\n", ans);
    for (i = 0; i < (int)a.size(); i++) printf("-2^%d\n", a[i]);
    for (i = 0; i < (int)b.size(); i++) printf("+2^%d\n", b[i]);
  }
  return 0;
}
