#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 {};
}
template<>
std::vector<int> split(const std::string& s, const std::string& delim, const bool keep_empty) {
// code for converting string to int
return {};
}
int main() {}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KCnRlbXBsYXRlPGNsYXNzIFJldHVyblR5cGU+CnN0ZDo6dmVjdG9yPFJldHVyblR5cGU+IHNwbGl0KGNvbnN0IHN0ZDo6c3RyaW5nJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBjb25zdCBib29sID0gdHJ1ZSk7Cgp0ZW1wbGF0ZTw+CnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzcGxpdChjb25zdCBzdGQ6OnN0cmluZyYgcywgY29uc3Qgc3RkOjpzdHJpbmcmIGRlbGltLCBjb25zdCBib29sIGtlZXBfZW1wdHkpIHsKICAgIC8vIG5vcm1hbCBzdHJpbmcgdmVjdG9yIGltcGxlbWVudGF0aW9uCiAgICByZXR1cm4ge307Cn0KCnRlbXBsYXRlPD4Kc3RkOjp2ZWN0b3I8aW50PiBzcGxpdChjb25zdCBzdGQ6OnN0cmluZyYgcywgY29uc3Qgc3RkOjpzdHJpbmcmIGRlbGltLCBjb25zdCBib29sIGtlZXBfZW1wdHkpIHsKICAgIC8vIGNvZGUgZm9yIGNvbnZlcnRpbmcgc3RyaW5nIHRvIGludAogICAgcmV0dXJuIHt9Owp9CgppbnQgbWFpbigpIHt9