#include <iostream>
using namespace std;

template <typename T, std::size_t N>
constexpr T arraysum(const T (&array)[N])  {
	T sum = 0;
	for (size_t i = 0; i < N; ++i) {
		sum += array[i];
	}
	return sum;
}

template <typename T, std::size_t N>
constexpr T arraysize(T (&)[N])  {
	return N;
}

int main() {
	// your code goes here
	constexpr int arr[] = {1, 2, 3};
	constexpr int size = arraysize(arr);
	cout<<size<<endl;
	constexpr int sum1 = arraysum(arr);
	cout <<sum1;
	int arr2[sum1];
	return 0;
}