#include <iostream>
#include <cstdlib>
using namespace std;

template<typename T> constexpr inline T add(T val) { return val; }

template<typename T, typename ...Agrs>
constexpr inline T add(T val, Agrs ...args) { return val + add(args...); }


int main() {

    cout << add(1, 2, 3) << endl;

    volatile int a = 1, b = 2, c = 3;

    cout << add(a, b, c) << endl;
    
    for(volatile int i = 0; i < 10; ++i) 
    	cout << add(rand(), i) << endl;

    return 0;
}