#include <iostream>
using namespace std;
// (a)
template<typename T, typename U>
int calc(T a, U b) { return (a + b); }
// (b)
template<>
int calc(int a, int b) { return (a * b); }
// (c)
template<typename T>
int calc(T a, int b) { return (a - b); }
// (d)
int calc(int a, int b) { return (a << b); }
int main()
{
cout<<calc<>(4, 2);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCi8vIChhKQp0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgppbnQgY2FsYyhUIGEsIFUgYikgeyByZXR1cm4gKGEgKyBiKTsgfQovLyAoYikKdGVtcGxhdGU8PgppbnQgY2FsYyhpbnQgYSwgaW50IGIpIHsgcmV0dXJuIChhICogYik7IH0KLy8gKGMpCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CmludCBjYWxjKFQgYSwgaW50IGIpIHsgcmV0dXJuIChhIC0gYik7IH0KLy8gKGQpCmludCBjYWxjKGludCBhLCBpbnQgYikgeyByZXR1cm4gKGEgPDwgYik7IH0KaW50IG1haW4oKQp7CiAgY291dDw8Y2FsYzw+KDQsIDIpOwp9