#include <iostream>
#include <locale>
struct phone_formatter : std::numpunct<char> {
char do_thousands_sep() const override { return '-'; }
std::string do_grouping() const override { return std::string({2, 2, 0}); }
};
int main() {
std::locale loc(std::cout.getloc(), new phone_formatter);
std::cout.imbue(loc);
std::cout << 1234 << "\n";
std::cout << 1234567 << "\n";
std::cout << 123456789 << "\n";
std::cout << 12 << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bG9jYWxlPgoKc3RydWN0IHBob25lX2Zvcm1hdHRlciA6IHN0ZDo6bnVtcHVuY3Q8Y2hhcj4gewoJY2hhciBkb190aG91c2FuZHNfc2VwKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gJy0nOyB9CglzdGQ6OnN0cmluZyBkb19ncm91cGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6c3RyaW5nKHsyLCAyLCAwfSk7IH0KfTsKCmludCBtYWluKCkgewoJc3RkOjpsb2NhbGUgbG9jKHN0ZDo6Y291dC5nZXRsb2MoKSwgbmV3IHBob25lX2Zvcm1hdHRlcik7CglzdGQ6OmNvdXQuaW1idWUobG9jKTsKCXN0ZDo6Y291dCA8PCAxMjM0IDw8ICJcbiI7CglzdGQ6OmNvdXQgPDwgMTIzNDU2NyA8PCAiXG4iOwoJc3RkOjpjb3V0IDw8IDEyMzQ1Njc4OSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8IDEyIDw8ICJcbiI7CglyZXR1cm4gMDsKfQ==