#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=3e5+5;
vector<int>v[N];
int dst[N];
pair<int,int> mx;
void dfs(int a, int p){
dst[a]=dst[p]+1;
mx=max(mx, {dst[a],a});
for(auto b:v[a]){
if(b==p)continue;
dfs(b,a);
}
}
signed main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
v[a].pb(b);
v[b].pb(a);
}
int ans=0;
for(int i=1;i<=n;i++){
if(dst[i]==0){
ans++;
mx={0,0};
dfs(i,0);
dfs(mx.ss,0);
ans+= mx.ff-1;
}
}
cout<<ans;
}