#include<bits/stdc++.h>
using namespace std;
char gx[30000][30000];
int n,p,q;
bool wsh(int ci,int cj){
if(gx[ci][cj]=='2')return true;
if(gx[ci][cj]=='1')return false;
for(int j=0;j<n;j++){
if(gx[ci][j]=='1'&&gx[cj][j]=='2'||gx[ci][j]=='2'&&gx[cj][j]=='1'){
return false;
}
}
for(int i=0;i<n;i++){
if(gx[cj][i]=='1'&&gx[ci][i]=='2'||gx[cj][i]=='2'&&gx[ci][i]=='1'){
return false;
}
}
return true;
}
int main()
{
cin>>n>>p>>q;
memset(gx,'0',sizeof(gx));
for(int i=0;i<p;i++){
int x,y;
cin>>x>>y;
gx[x][y]='2';
gx[y][x]='2';
}
for(int i=0;i<q;i++){
int x,y;
cin>>x>>y;
gx[x][y]='1';
gx[y][x]='1';
}
int cnt=0;
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(wsh(i,j))cnt++;
}
}
cout<<cnt;
return 0;
}