#include <algorithm>
#include <cstring>
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
using namespace std;
int main() {
auto str = "a,b,c"s;
vector<string> tokens;
string::size_type start = -1;
string::size_type finish = str.find(',');
do {
tokens.push_back(str.substr(start + 1, finish));
cout << start + 1 << ',' << finish << ':' << tokens.back() << endl;
start = finish;
finish = str.find(',', start + 1);
} while (start != string::npos);
copy(cbegin(tokens), cend(tokens), ostream_iterator<string>(cout, "\n"));
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgppbnQgbWFpbigpIHsKCWF1dG8gc3RyID0gImEsYixjInM7Cgl2ZWN0b3I8c3RyaW5nPiB0b2tlbnM7CglzdHJpbmc6OnNpemVfdHlwZSBzdGFydCA9IC0xOwoJc3RyaW5nOjpzaXplX3R5cGUgZmluaXNoID0gc3RyLmZpbmQoJywnKTsKCglkbyB7CgkJdG9rZW5zLnB1c2hfYmFjayhzdHIuc3Vic3RyKHN0YXJ0ICsgMSwgZmluaXNoKSk7CgkJCgkJY291dCA8PCBzdGFydCArIDEgPDwgJywnIDw8IGZpbmlzaCA8PCAnOicgPDwgdG9rZW5zLmJhY2soKSA8PCBlbmRsOwoJCQoJCXN0YXJ0ID0gZmluaXNoOwoJCWZpbmlzaCA9IHN0ci5maW5kKCcsJywgc3RhcnQgKyAxKTsKCX0gd2hpbGUgKHN0YXJ0ICE9IHN0cmluZzo6bnBvcyk7CgkKCWNvcHkoY2JlZ2luKHRva2VucyksIGNlbmQodG9rZW5zKSwgb3N0cmVhbV9pdGVyYXRvcjxzdHJpbmc+KGNvdXQsICJcbiIpKTsKfQ==