#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
int arr[2000090],size[2000090];
void initialize(int n)
{
for(int i=1;i<=n;i++)
{
size[i]=1;
arr[i]=i;
}
}
int root(int i)
{
while(arr[i] != i)
{
arr[i]=arr[arr[i]];
i=arr[i];
}
return i;
}
bool find(int a,int b)
{
if(root(a)==root(b))
return true;
return false;
}
void weighted_union(int a,int b)
{
int ra=root(a);
int rb=root(b);
if(ra==rb)
return;
if(size[ra]<size[rb])
{
arr[ra]=arr[rb];
size[rb]+=size[ra];
size[ra]=0;
}
else
{
arr[rb]=arr[ra];
size[ra]+=size[rb];
size[rb]=0;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
map< int,int > mp;
set<int> s;
vector< pair<int,int> > vs;
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
s.insert(x);
s.insert(y);
vs.push_back(make_pair(x,y));
}
auto it = s.begin();
int c=1;
vector<int> mem;
while(it!=s.end())
{
mp[*it]=c;
mem.push_back(*it);
c++;
it++;
}
int si=s.size(),cc=0;
initialize(si+100);
for(int i=0;i<vs.size();i++)
{
weighted_union(mp[vs[i].first],mp[vs[i].second]);
}
for(int i=1;i<=si;i++)
{
if(size[i]!=0)
cc++;
}
//cout<<mem.size()<<endl;
cc += mem[0]-1;
for(int i=1;i<mem.size();i++)
{
cc+= mem[i]-mem[i-1]-1;
}
cc+=n-mem[mem.size()-1];
cout<<cc<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZW5kbCAnXG4nCmludCBhcnJbMjAwMDA5MF0sc2l6ZVsyMDAwMDkwXTsKdm9pZCBpbml0aWFsaXplKGludCBuKQp7Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCXsKCQlzaXplW2ldPTE7CgkJYXJyW2ldPWk7Cgl9Cn0KaW50IHJvb3QoaW50IGkpCnsKCXdoaWxlKGFycltpXSAhPSBpKQoJewoJCWFycltpXT1hcnJbYXJyW2ldXTsKCQlpPWFycltpXTsKCX0KCXJldHVybiBpOwp9CmJvb2wgZmluZChpbnQgYSxpbnQgYikKewoJaWYocm9vdChhKT09cm9vdChiKSkKCQlyZXR1cm4gdHJ1ZTsKCXJldHVybiBmYWxzZTsKfQp2b2lkIHdlaWdodGVkX3VuaW9uKGludCBhLGludCBiKQp7CglpbnQgcmE9cm9vdChhKTsKCWludCByYj1yb290KGIpOwoJaWYocmE9PXJiKQoJCXJldHVybjsKCWlmKHNpemVbcmFdPHNpemVbcmJdKQoJewoJCWFycltyYV09YXJyW3JiXTsKCQlzaXplW3JiXSs9c2l6ZVtyYV07CgkJc2l6ZVtyYV09MDsKCX0KCWVsc2UKCXsKCQlhcnJbcmJdPWFycltyYV07CgkJc2l6ZVtyYV0rPXNpemVbcmJdOwoJCXNpemVbcmJdPTA7Cgl9Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICAKICAgICAgbWFwPCBpbnQsaW50ID4gbXA7CiAgICAgIHNldDxpbnQ+IHM7CiAgICAgIHZlY3RvcjwgcGFpcjxpbnQsaW50PiA+IHZzOwogICAgICBpbnQgbixtOwogICAgICBjaW4+Pm4+Pm07CiAgICAgIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICAgIHsKICAgICAgCWludCB4LHk7CiAgICAgIAljaW4+Png+Pnk7CiAgICAgIAlzLmluc2VydCh4KTsKICAgICAgCXMuaW5zZXJ0KHkpOwogICAgICAJdnMucHVzaF9iYWNrKG1ha2VfcGFpcih4LHkpKTsKICAgICAgfQogICAgICBhdXRvIGl0ID0gcy5iZWdpbigpOwogICAgICBpbnQgYz0xOwogICAgICB2ZWN0b3I8aW50PiBtZW07CiAgICAgIHdoaWxlKGl0IT1zLmVuZCgpKQogICAgICB7CiAgICAgIAltcFsqaXRdPWM7CiAgICAgIAltZW0ucHVzaF9iYWNrKCppdCk7CiAgICAgIAljKys7CiAgICAgIAlpdCsrOwogICAgICB9CiAgICAgIGludCBzaT1zLnNpemUoKSxjYz0wOwogICAgICBpbml0aWFsaXplKHNpKzEwMCk7CiAgICAgIGZvcihpbnQgaT0wO2k8dnMuc2l6ZSgpO2krKykKICAgICAgewogICAgICAJd2VpZ2h0ZWRfdW5pb24obXBbdnNbaV0uZmlyc3RdLG1wW3ZzW2ldLnNlY29uZF0pOwogICAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1zaTtpKyspCiAgICB7CiAgICAJaWYoc2l6ZVtpXSE9MCkKICAgIAkJY2MrKzsKICAgIH0KICAgIC8vY291dDw8bWVtLnNpemUoKTw8ZW5kbDsKICAgIAljYyArPSBtZW1bMF0tMTsKICAgIAogICAgZm9yKGludCBpPTE7aTxtZW0uc2l6ZSgpO2krKykKICAgIHsKICAgIAljYys9IG1lbVtpXS1tZW1baS0xXS0xOwogICAgfQogICAgY2MrPW4tbWVtW21lbS5zaXplKCktMV07CiAgICBjb3V0PDxjYzw8ZW5kbDsKICAgIHJldHVybiAwOwp9