#include <vector>
#include <string>
template<class ReturnType>
std::vector<ReturnType> split(const std::string&, const std::string&, const bool = true);
template<>
std::vector<std::string> split(const std::string& s, const std::string& delim, const bool keep_empty) {
// normal string vector implementation
return {"1", "2", "3"};
}
template<>
std::vector<int> split(const std::string& s, const std::string& delim, const bool keep_empty) {
// code for converting string to int
return {1, 2, 3};
}
int main() {}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KCnRlbXBsYXRlPGNsYXNzIFJldHVyblR5cGU+CnN0ZDo6dmVjdG9yPFJldHVyblR5cGU+IHNwbGl0KGNvbnN0IHN0ZDo6c3RyaW5nJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBjb25zdCBib29sID0gdHJ1ZSk7Cgp0ZW1wbGF0ZTw+CnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzcGxpdChjb25zdCBzdGQ6OnN0cmluZyYgcywgY29uc3Qgc3RkOjpzdHJpbmcmIGRlbGltLCBjb25zdCBib29sIGtlZXBfZW1wdHkpIHsKICAgIC8vIG5vcm1hbCBzdHJpbmcgdmVjdG9yIGltcGxlbWVudGF0aW9uCiAgICByZXR1cm4geyIxIiwgIjIiLCAiMyJ9Owp9Cgp0ZW1wbGF0ZTw+CnN0ZDo6dmVjdG9yPGludD4gc3BsaXQoY29uc3Qgc3RkOjpzdHJpbmcmIHMsIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZWxpbSwgY29uc3QgYm9vbCBrZWVwX2VtcHR5KSB7CiAgICAvLyBjb2RlIGZvciBjb252ZXJ0aW5nIHN0cmluZyB0byBpbnQKICAgIHJldHVybiB7MSwgMiwgM307Cn0KCmludCBtYWluKCkge30=