#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);
}