#include <vector>
template <typename D>
std::vector<D> struct_vector(D d, int a) {
std::vector<D> result(a, d);
return result;
}
template <typename D>
std::vector<std::vector<D>> struct_vector(D d, int a, int b) {
std::vector<std::vector<D>> result(a, struct_vector(d, b));
return result;
}
template <typename D>
std::vector<std::vector<std::vector<D>>> struct_vector
(D d, int a, int b, int c) {
std::vector<std::vector<std::vector<D>>>
result(a, struct_vector(d, b, c));
return result;
}
template<typename D, typename... Args>
auto initialize_vector(D d, Args... args) {
return struct_vector(d, args...);
}