template<typename T>
istream& operator >> (istream& is, vector<T>& vs){
for(T& v: vs) is >> v;
return is;
}
template<typename T>
ostream& operator << (ostream& os, vector<T>& vs){
for (const T& v : vs) os << v << " ";
return os;
}
template<typename T>
ostream& operator << (ostream& os, set<T>& vs){
for (const T& v : vs) os << v << " ";
return os;
}
ostream& operator << (ostream& os, map<T>& m){
for (const auto [k, v] : m) os << "{" << k << "," << v << "}";
return os;
}