template <typename T, typename M>
auto initialize_vector(T value, M size) {
std::vector<T> vec(size, value);
return vec;
}
template <typename T, typename M, typename... Args>
auto initialize_vector(T value, M arg, Args... others) {
std::vector<decltype(initialize_vector(value, others...))> vec(
arg, initialize_vector(value, others...));
return vec;
}