#pragma GCC optimize("O3") #include using namespace std; using ll=long long; typedef unsigned long long int ull; typedef pair P; template using V=vector; #define fi first #define se second #define all(v) (v).begin(),(v).end() const ll inf=(1e18); //const ll mod=998244353; const ll mod=1000000007; //ios_base::sync_with_stdio(false); //cin.tie(NULL); ll gcd(ll a,ll b) {return b ? gcd(b,a%b):a;} ll lcm(ll c,ll d){return c/gcd(c,d)*d;} struct __INIT{__INIT(){cin.tie(0);ios::sync_with_stdio(false);cout< bool chmax(T &a, const T &b) { if (a bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; } V> graph; priority_queue,greater> q; void dfs(int now,int bfo,int cnt){ q.push(cnt); for(int v:graph[now]){ if(v==bfo)continue; else dfs(v,now,cnt+1); } return; } int main(){ int n,m; cin>>n>>m; graph.resize(n); for(int i=0;i>a>>b; a--;b--; graph[a].push_back(b); graph[b].push_back(a); } if(n