#include <iostream>

int add1(int n) { return n+1; }
int add2(int n) { return n+2; }
 
template<typename Adder>
void AddHandler(int n, Adder adder)
{
    int r = adder(n);
    std::cout << r << std::endl;
}
 
int main(void)
{
    AddHandler(1, add1);
    AddHandler(3, add2);
 
    return 0;
}