#Define
#Define
h>
using namespace std ;
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define fast ios_base:: sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define dd double
#define vv vector<ll>
#define mp make_pair
#define pp pair<ll,ll>
#define ff first
#define ss second
#define vp vector<pp>
#define pb push_back
ll const MOD=1e9+7;
int main()
{
fast;
ll fact(int x){
lint ret = 1;
for(int i=1; i<=x; i++) ret = ret * i % mod;
return ret;
}
Prime[a] += 1;
}
}
}
int count = 0;
void isprime()
{
memset(prime,true,N);
for(ll i=2;i*i<N;i++)
{
if(prime[i]==true)
{
for(ll j=i*i;j<N;j+=i)
{
prime[j]=false;
}
}
}
}
ll power(ll a,ll n)
{
ll ans=1;
a=a%mod;
while(n>0)
{
if(n&1)
{
ans=(ans*a)%mod;
}
n=n>>1;
a=(a*a)%mod;
}
return ans;
}
///dfs
vector<int> val[100007];
bool visit[100007];
ll cnt=0;
visit[ind]=true;
for(int it=0;it<val[ind].size();it++)
{
ll xm=val[ind][it];
if(!visit[xm])
{
if(val[xm].size()-1>val[ind].size())
cnt++;
dfs(xm);
}
}
}
int main()
{
fast;
int n,m,i,u,v;
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>u>>v;
val[u].pb(v);
val[v].pb(u);
}
for(i=1;i<=n;i++)
{
if(!visit[i])
{
dfs(i,val);
}
}
}
q.push(s);
used[s]=true;
while(!q.empty()){
int v=q.front();
q.pop();
for(int e:adj[v]){
if(!used[e]){
q.push(e);
p[e]=v;
used[e]=true;
}
}
}