#pragma once
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <functional>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
#include <list>
template<typename T>
auto initialize_vector(T val, int len) {
std::vector<T> a(len, val);
return a;
}
template<typename T, typename... Types>
auto initialize_vector(T val, int len, Types... args) {
auto a = initialize_vector<T>(val, args...);
typedef decltype(a) b;
std::vector<b> v(len, a);
return v;
}