#include <bits/stdc++.h>
using namespace std;
const int maxn=1e7;
int n,m;
int fa[maxn];
void init()
{
for(int i=0;i<=m*n;i++) //<=m*n
{
fa[i]=i;
}
return ;
}
int find(int x)
{
if(fa[x]!=x)
{
fa[x]=find(fa[x]);
}
return fa[x];
}
int main()
{
scanf("%d %d",&n,&m);
init();
int res=0;
int x1,y1,x2,y2;
while(cin>>x1>>y1>>x2>>y2)
{
int u=(x1-1)*m+y1;
int v=(x2-1)*m+y2;
if(find(u)!=find(v))
{
fa[find(u)]=find(v);
}
}
for(int i=1;i<=m;i++) //竖着(相邻)
{
for(int j=1;j<n;j++)
{
int u=(j-1)*m+i;
int v=j*m+i;
if(find(u)!=find(v))
{
res+=1;
fa[find(u)]=find(v);
}
}
}
for(int i=1;i<=n;i++) //横着(相邻)
{
for(int j=1;j<m;j++)
{
int u=(i-1)*m+j;
int v=(i-1)*m+j+1;
if(find(u)!=find(v))
{
res+=2;
fa[find(u)]=find(v);
}
}
}
printf("%d\n",res);
return 0;
}