#include <iostream>
#include <locale>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <cstring>
std::string extract_ints(std::ctype_base::mask category, std::string str, std::ctype<char> const& facet)
{
using std::strlen;
char const *begin = &str.front(),
*end = &str.back();
auto res = facet.scan_is(category, begin, end);
begin = &res[0];
end = &res[strlen(res)];
return std::string(begin, end);
}
std::string extract_ints(std::string str)
{
return extract_ints(std::ctype_base::digit, str,
std::use_facet<std::ctype<char>>(std::locale("")));
}
int main()
{
int a, b, c;
std::string str = "abc 1 2 3";
std::stringstream ss(extract_ints(str));
ss >> a >> b >> c;
std::cout << a << '\n' << b << '\n' << c;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8Y3N0cmluZz4KCnN0ZDo6c3RyaW5nIGV4dHJhY3RfaW50cyhzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgY2F0ZWdvcnksIHN0ZDo6c3RyaW5nIHN0ciwgc3RkOjpjdHlwZTxjaGFyPiBjb25zdCYgZmFjZXQpCnsKICAgIHVzaW5nIHN0ZDo6c3RybGVuOwoKICAgIGNoYXIgY29uc3QgKmJlZ2luID0gJnN0ci5mcm9udCgpLAogICAgICAgICAgICAgICAqZW5kICAgPSAmc3RyLmJhY2soKTsKCiAgICBhdXRvIHJlcyA9IGZhY2V0LnNjYW5faXMoY2F0ZWdvcnksIGJlZ2luLCBlbmQpOwoKICAgIGJlZ2luID0gJnJlc1swXTsKICAgIGVuZCAgID0gJnJlc1tzdHJsZW4ocmVzKV07CiAgICAKICAgIHJldHVybiBzdGQ6OnN0cmluZyhiZWdpbiwgZW5kKTsKfQoKc3RkOjpzdHJpbmcgZXh0cmFjdF9pbnRzKHN0ZDo6c3RyaW5nIHN0cikKewogICAgcmV0dXJuIGV4dHJhY3RfaW50cyhzdGQ6OmN0eXBlX2Jhc2U6OmRpZ2l0LCBzdHIsCiAgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6Y3R5cGU8Y2hhcj4+KHN0ZDo6bG9jYWxlKCIiKSkpOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBhLCBiLCBjOwoKICAgIHN0ZDo6c3RyaW5nIHN0ciA9ICJhYmMgMSAyIDMiOwogICAgc3RkOjpzdHJpbmdzdHJlYW0gc3MoZXh0cmFjdF9pbnRzKHN0cikpOwoKICAgIHNzID4+IGEgPj4gYiA+PiBjOwoKICAgIHN0ZDo6Y291dCA8PCBhIDw8ICdcbicgPDwgYiA8PCAnXG4nIDw8IGM7Cn0=