#include #define int long long #define all(v)v.begin(),v.end() #define rall(v)v.rbegin(),v.rend() bool st; using namespace std; templateistream&operator>>(istream&I,vector&v){for(auto&i:v)I>>i;return I;} templateostream&operator<<(ostream&O,vector v){for(auto i:v)O<>a>>b>>c>>d; bool bl=0; vector>e; if(a==c&&b==c){ if(c==1)bl=true; for(int i=0;itr; if(c==0){ for(int i=0;imp; mp[A]=0; mp[B]=1; auto get=[&](int&i){ if(tr.count(i))i=tr[i]; if(!mp.count(i)){ int size=mp.size(); mp[i]=size; } i=mp[i]; }; for(auto&it:e){ get(it.first); get(it.second); } } if(bl||e.size()>d){ cout<<-1<>t; while(t--)AC::solve(); chrono::steady_clock::time_point ED=chrono::steady_clock::now(); cerr<(ED-St).count()<<" \tms\n"<<"Real Time : "<(ED-ST).count()<<" \tms\n"<<" : "<(ED-ST).count()<<" \t?s\n\n"<<"Total Memory : "<