#include <cstdio>
#include <iostream>
#include <sstream>
template <typename T> struct scanf_format;
template <> struct scanf_format<int>
{
static constexpr const char* format = "%d";
static constexpr const char* format2 = "%d %d";
};
template <> struct scanf_format<long long>
{
static constexpr const char* format = "%lld";
static constexpr const char* format2 = "%lld %lld";
};
template <typename T>
void my_scanf(const char* buffer, T&a, T&b)
{
sscanf(buffer, scanf_format<T>::format2, &a, &b);
}
template <typename T>
void my_scanf2(const char* buffer, T&a, T&b)
{
std::stringstream ss(buffer);
ss >> a >> b;
}
int main(){
int a;
int b;
my_scanf("4 2", a, b);
std::cout << a << b << std::endl;
my_scanf2("4 2", a, b);
std::cout << a << b << std::endl;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3Qgc2NhbmZfZm9ybWF0OwoKdGVtcGxhdGUgPD4gc3RydWN0IHNjYW5mX2Zvcm1hdDxpbnQ+CnsKICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogZm9ybWF0ID0gIiVkIjsKICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogZm9ybWF0MiA9ICIlZCAlZCI7Cn07Cgp0ZW1wbGF0ZSA8PiBzdHJ1Y3Qgc2NhbmZfZm9ybWF0PGxvbmcgbG9uZz4KewogICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBmb3JtYXQgPSAiJWxsZCI7CiAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIGZvcm1hdDIgPSAiJWxsZCAlbGxkIjsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp2b2lkIG15X3NjYW5mKGNvbnN0IGNoYXIqIGJ1ZmZlciwgVCZhLCBUJmIpCnsKICAgIHNzY2FuZihidWZmZXIsIHNjYW5mX2Zvcm1hdDxUPjo6Zm9ybWF0MiwgJmEsICZiKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgbXlfc2NhbmYyKGNvbnN0IGNoYXIqIGJ1ZmZlciwgVCZhLCBUJmIpCnsKICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzKGJ1ZmZlcik7CiAgICBzcyA+PiBhID4+IGI7Cn0KCmludCBtYWluKCl7CiAgICBpbnQgYTsKICAgIGludCBiOwoKICAgIG15X3NjYW5mKCI0IDIiLCBhLCBiKTsKICAgIHN0ZDo6Y291dCA8PCBhIDw8IGIgPDwgc3RkOjplbmRsOwogICAgbXlfc2NhbmYyKCI0IDIiLCBhLCBiKTsKICAgIHN0ZDo6Y291dCA8PCBhIDw8IGIgPDwgc3RkOjplbmRsOwp9Cg==