#include <iostream>
#include <vector>
using namespace std;
vector<string> split(string s) {
char letter;
vector<string> vector_string;
for(int i=0; i<s.length(); ) {
if (isalnum(s[i])) {
string r;
do {
r.push_back(s[i++]);
} while(i<s.length() && isalnum(s[i]));
vector_string.push_back(r);
}
else i++;
}
return vector_string;
}
int main() {
auto str=";This.;/Is.a.String";
auto res = split (str);
for (auto&x:res)
cout<< x<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPHN0cmluZz4gc3BsaXQoc3RyaW5nIHMpIHsKICAgIGNoYXIgbGV0dGVyOwogICAgdmVjdG9yPHN0cmluZz4gdmVjdG9yX3N0cmluZzsKICAgIAogICAgZm9yKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CgkJaWYgKGlzYWxudW0oc1tpXSkpIHsKCQkJc3RyaW5nIHI7IAoJCQlkbyB7ICAKIAkgICAgICAgICAgIHIucHVzaF9iYWNrKHNbaSsrXSk7CiAJCQl9IHdoaWxlKGk8cy5sZW5ndGgoKSAmJiBpc2FsbnVtKHNbaV0pKTsKICAgICAgICAJdmVjdG9yX3N0cmluZy5wdXNoX2JhY2socik7CiAJCX0KCQllbHNlIGkrKzsgCgl9CglyZXR1cm4gdmVjdG9yX3N0cmluZzsKfQoKaW50IG1haW4oKSB7CglhdXRvIHN0cj0iO1RoaXMuOy9Jcy5hLlN0cmluZyI7IAoJYXV0byByZXMgPSBzcGxpdCAoc3RyKTsgCglmb3IgKGF1dG8meDpyZXMpIAoJICAgIGNvdXQ8PCB4PDxlbmRsOwoJcmV0dXJuIDA7Cn0=