#include <iostream>
#include <type_traits>
using namespace std;
template<typename T_orig> void f(T_orig& a){
a=5;
}
template<typename T_orig, typename T=T_orig&> void g(T a){
a=8;
}
int main() {
int b=3;
f<decltype(b)>(b);
cout<<b<<endl;
g<decltype(b)>(b);
cout<<b<<endl;
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVF9vcmlnPiB2b2lkIGYoVF9vcmlnJiBhKXsKICAgIGE9NTsKfQoKCnRlbXBsYXRlPHR5cGVuYW1lIFRfb3JpZywgdHlwZW5hbWUgVD1UX29yaWcmPiB2b2lkIGcoVCBhKXsKICAgIGE9ODsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgYj0zOwogICAgZjxkZWNsdHlwZShiKT4oYik7CiAgICBjb3V0PDxiPDxlbmRsOwogICAgZzxkZWNsdHlwZShiKT4oYik7CiAgICBjb3V0PDxiPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=