#include #include char s[128]; char sol[128]; bool find(int pos, int sol_p, long long sum, long long cur_v) { if(!s[pos]) return false; if (sol_p > 0 && sol[sol_p - 1] != '+') { long long new_sum = sum + cur_v; char tmp[32]; sprintf(tmp, "%lld", new_sum); if(strcmp(tmp, s + pos) == 0) { sol[sol_p++] = '='; strcpy(sol + sol_p, tmp ); return true; } sol[sol_p] = '+'; if (find(pos, sol_p + 1, new_sum, 0)) return true; } if(sum < 99999999999ll) { sol[sol_p] = s[pos]; cur_v = cur_v * 10 + s[pos] - '0'; return find(pos + 1, sol_p + 1, sum, cur_v); } return false; } int main() { scanf("%s", s); printf("%s", find(0, 0, 0, 0) ? sol : "-1"); return 0; }