#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <cctype>
bool has_digits(std::string const& string) {
return (std::find_if(string.begin(), string.end(), ::isdigit) != string.end());
}
void erase_digits(std::string & string) {
string.erase(std::remove_if(string.begin(), string.end(), ::isdigit), string.end());
}
int main() {
std::vector<std::string> text;
std::string tmp;
for (std::size_t i = 0; (i != 10) && (std::cin >> tmp); ++i, text.push_back(tmp));
std::cout << "Strings with digits: ";
std::remove_copy_if( // std::copy_if
text.begin()
, text.end()
, std::ostream_iterator<std::string>(std::cout, " ")
, std::not1(std::ptr_fun(has_digits)));
std::cout << std::endl;
std::for_each(text.begin(), text.end(), erase_digits);
std::cout << "After digits removal: ";
std::copy(text.begin(), text.end(), std::ostream_iterator<std::string>(std::cout, " "));
std::cout << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8Y2N0eXBlPgoKCmJvb2wgaGFzX2RpZ2l0cyhzdGQ6OnN0cmluZyBjb25zdCYgc3RyaW5nKSB7CiAgIHJldHVybiAoc3RkOjpmaW5kX2lmKHN0cmluZy5iZWdpbigpLCBzdHJpbmcuZW5kKCksIDo6aXNkaWdpdCkgIT0gc3RyaW5nLmVuZCgpKTsKfQoKdm9pZCBlcmFzZV9kaWdpdHMoc3RkOjpzdHJpbmcgJiBzdHJpbmcpIHsKICAgc3RyaW5nLmVyYXNlKHN0ZDo6cmVtb3ZlX2lmKHN0cmluZy5iZWdpbigpLCBzdHJpbmcuZW5kKCksIDo6aXNkaWdpdCksIHN0cmluZy5lbmQoKSk7Cn0KCgppbnQgbWFpbigpIHsKICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHRleHQ7CgogICBzdGQ6OnN0cmluZyB0bXA7CiAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IChpICE9IDEwKSAmJiAoc3RkOjpjaW4gPj4gdG1wKTsgKytpLCB0ZXh0LnB1c2hfYmFjayh0bXApKTsKCiAgIHN0ZDo6Y291dCA8PCAiU3RyaW5ncyB3aXRoIGRpZ2l0czogIjsKICAgc3RkOjpyZW1vdmVfY29weV9pZiggICAvLyBzdGQ6OmNvcHlfaWYKICAgICAgICAgdGV4dC5iZWdpbigpCiAgICAgICAsIHRleHQuZW5kKCkKICAgICAgICwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPHN0ZDo6c3RyaW5nPihzdGQ6OmNvdXQsICIgIikKICAgICAgICwgc3RkOjpub3QxKHN0ZDo6cHRyX2Z1bihoYXNfZGlnaXRzKSkpOwogICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwoKICAgc3RkOjpmb3JfZWFjaCh0ZXh0LmJlZ2luKCksIHRleHQuZW5kKCksIGVyYXNlX2RpZ2l0cyk7CgogICBzdGQ6OmNvdXQgPDwgIkFmdGVyIGRpZ2l0cyByZW1vdmFsOiAiOwogICBzdGQ6OmNvcHkodGV4dC5iZWdpbigpLCB0ZXh0LmVuZCgpLCBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8c3RkOjpzdHJpbmc+KHN0ZDo6Y291dCwgIiAiKSk7CiAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cn0=