#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
struct invalid_char { char c; };
template <typename It>
std::vector<int> split_values(It beg, It end) {
std::vector<int> ret;
std::transform(beg, end, std::back_inserter(ret), [](char c) {
if (c >= 'a' && c <= 'z') return c - 'a' + 1;
if (c >= 'A' && c <= 'Z') return c - 'A' + 1;
throw invalid_char{c};
});
std::partial_sum(ret.begin(), ret.end(), ret.begin());
std::partial_sum(ret.begin(), ret.end(), ret.begin());
return ret;
}
int main() {
std::string s;
while (std::cin >> s) {
if (s.length() <= 3) {
std::cout << s << " does not balance.\n";
continue;
}
auto forward = split_values(s.begin(), s.end());
auto back = split_values(s.rbegin(), s.rend());
auto f = forward.begin(), fend = forward.end() - 2;
for (auto b = back.rbegin() + 2; f != fend && *f != *b; ++f, ++b);
if (f != fend) {
auto len = std::distance(forward.begin(), f) + 1;
std::cout << s.substr(0, len) << ' ' << s[len] << ' ' << s.substr(len+1)
<< " - " << *f << '\n';
} else {
std::cout << s << " does not balance.\n";
}
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IGludmFsaWRfY2hhciB7IGNoYXIgYzsgfTsKdGVtcGxhdGUgPHR5cGVuYW1lIEl0PgpzdGQ6OnZlY3RvcjxpbnQ+IHNwbGl0X3ZhbHVlcyhJdCBiZWcsIEl0IGVuZCkgewoJc3RkOjp2ZWN0b3I8aW50PiByZXQ7CglzdGQ6OnRyYW5zZm9ybShiZWcsIGVuZCwgc3RkOjpiYWNrX2luc2VydGVyKHJldCksIFtdKGNoYXIgYykgewoJCWlmIChjID49ICdhJyAmJiBjIDw9ICd6JykgcmV0dXJuIGMgLSAnYScgKyAxOwoJCWlmIChjID49ICdBJyAmJiBjIDw9ICdaJykgcmV0dXJuIGMgLSAnQScgKyAxOwoJCXRocm93IGludmFsaWRfY2hhcntjfTsKCX0pOwoJc3RkOjpwYXJ0aWFsX3N1bShyZXQuYmVnaW4oKSwgcmV0LmVuZCgpLCByZXQuYmVnaW4oKSk7CglzdGQ6OnBhcnRpYWxfc3VtKHJldC5iZWdpbigpLCByZXQuZW5kKCksIHJldC5iZWdpbigpKTsKCXJldHVybiByZXQ7Cn0KCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmcgczsKCXdoaWxlIChzdGQ6OmNpbiA+PiBzKSB7CgkJaWYgKHMubGVuZ3RoKCkgPD0gMykgewoJCQlzdGQ6OmNvdXQgPDwgcyA8PCAiIGRvZXMgbm90IGJhbGFuY2UuXG4iOwoJCQljb250aW51ZTsKCQl9CgkJYXV0byBmb3J3YXJkID0gc3BsaXRfdmFsdWVzKHMuYmVnaW4oKSwgcy5lbmQoKSk7CgkJYXV0byBiYWNrID0gc3BsaXRfdmFsdWVzKHMucmJlZ2luKCksIHMucmVuZCgpKTsKCQlhdXRvIGYgPSBmb3J3YXJkLmJlZ2luKCksIGZlbmQgPSBmb3J3YXJkLmVuZCgpIC0gMjsKCQlmb3IgKGF1dG8gYiA9IGJhY2sucmJlZ2luKCkgKyAyOyBmICE9IGZlbmQgJiYgKmYgIT0gKmI7ICsrZiwgKytiKTsKCQlpZiAoZiAhPSBmZW5kKSB7CgkJCWF1dG8gbGVuID0gc3RkOjpkaXN0YW5jZShmb3J3YXJkLmJlZ2luKCksIGYpICsgMTsKCQkJc3RkOjpjb3V0IDw8IHMuc3Vic3RyKDAsIGxlbikgPDwgJyAnIDw8IHNbbGVuXSA8PCAnICcgPDwgcy5zdWJzdHIobGVuKzEpCgkJCQk8PCAiIC0gIiA8PCAqZiA8PCAnXG4nOwoJCX0gZWxzZSB7CgkJCXN0ZDo6Y291dCA8PCBzIDw8ICIgZG9lcyBub3QgYmFsYW5jZS5cbiI7CgkJfQoJfQoJcmV0dXJuIDA7Cn0=