#include<iostream>
using namespace std;
int father[1000010],n,m,sum=0;
int find(int x){
if(father[x]==x) return x;
return father[x]=find(father[x]);
}
int unite(int x,int y){
int fx=find(x);
int fy=find(y);
if(fx!=fy){
father[fy]=fx;
return 1;
}
return 0;
}
int main(){
cin>>m>>n; for(int i=1;i<=m*n;++i)father[i]=i;
int a,b,c,d;
while(scanf("%d%d%d%d",&a,&b,&c,&d)==4)unite((a-1)*n+b,(c-1)*n+d);
for(int i=1;i<m;++i){
for(int j=1;j<=n;++j){ if( unite((i-1)*n+j,i*n+j) )sum+=1;
}
}
for(int i=1;i<=m;++i){
for(int j=1;j<n;++j){ if( unite((i-1)*n+j,(i-1)*n+j+1) )sum+=2;
}
}
cout<<sum;
return 0;
}