#include <iostream>
template<typename RvalT, typename Iter>
RvalT getHex(Iter first, Iter last)
{
RvalT rval = 0;
for(RvalT base_mul = 1 ; last != first ; base_mul *= 16)
rval += base_mul * (*--last - '0');
return rval;
}
int main()
{
std::string tst = "121";
std::cout << getHex<int>(tst.begin(), tst.end());
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8dHlwZW5hbWUgUnZhbFQsIHR5cGVuYW1lIEl0ZXI+ClJ2YWxUIGdldEhleChJdGVyIGZpcnN0LCBJdGVyIGxhc3QpCnsKICAgIFJ2YWxUIHJ2YWwgPSAwOwogICAgCiAgICBmb3IoUnZhbFQgYmFzZV9tdWwgPSAxIDsgbGFzdCAhPSBmaXJzdCA7IGJhc2VfbXVsICo9IDE2KQogICAgICAgIHJ2YWwgKz0gYmFzZV9tdWwgKiAoKi0tbGFzdCAtICcwJyk7CgogICAgcmV0dXJuIHJ2YWw7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpzdHJpbmcgdHN0ID0gIjEyMSI7CiAgICBzdGQ6OmNvdXQgPDwgZ2V0SGV4PGludD4odHN0LmJlZ2luKCksIHRzdC5lbmQoKSk7Cn0=