#include <iostream>
#include <algorithm>
#include <locale>
#include <vector>
#include <iterator>
#include <sstream>
struct digits_only: std::ctype<char>
{
digits_only(): std::ctype<char>(get_table()) {}
static std::ctype_base::mask const* get_table()
{
static std::vector<std::ctype_base::mask>
rc(std::ctype<char>::table_size,std::ctype_base::space);
for (int i='0'; i<'9'; i++)
rc[i] = std::ctype_base::digit;
return &rc[0];
}
};
int main() {
std::string input("123s45dfas6");
std::istringstream buf(input);
buf.imbue(std::locale(std::locale(), new digits_only()));
std::copy(std::istream_iterator<char>(buf),
std::istream_iterator<char>(),
std::ostream_iterator<char>(std::cout, ""));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxzc3RyZWFtPgogIApzdHJ1Y3QgZGlnaXRzX29ubHk6IHN0ZDo6Y3R5cGU8Y2hhcj4gCnsKICAgIGRpZ2l0c19vbmx5KCk6IHN0ZDo6Y3R5cGU8Y2hhcj4oZ2V0X3RhYmxlKCkpIHt9CgogICAgc3RhdGljIHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayBjb25zdCogZ2V0X3RhYmxlKCkKICAgIHsKICAgICAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpjdHlwZV9iYXNlOjptYXNrPiAKICAgICAgICAgICAgcmMoc3RkOjpjdHlwZTxjaGFyPjo6dGFibGVfc2l6ZSxzdGQ6OmN0eXBlX2Jhc2U6OnNwYWNlKTsKCQlmb3IgKGludCBpPScwJzsgaTwnOSc7IGkrKykKCQkJcmNbaV0gPSBzdGQ6OmN0eXBlX2Jhc2U6OmRpZ2l0OwogICAgICAgIHJldHVybiAmcmNbMF07CiAgICB9Cn07CiAgCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmcgaW5wdXQoIjEyM3M0NWRmYXM2Iik7CglzdGQ6OmlzdHJpbmdzdHJlYW0gYnVmKGlucHV0KTsKICAgIGJ1Zi5pbWJ1ZShzdGQ6OmxvY2FsZShzdGQ6OmxvY2FsZSgpLCBuZXcgZGlnaXRzX29ubHkoKSkpOwoKICAgIHN0ZDo6Y29weShzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4oYnVmKSwgCiAgICAgICAgc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+KCksCiAgICAgICAgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGNoYXI+KHN0ZDo6Y291dCwgIiIpKTsKfQo=