#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int G[5000][5000], chk[5000] = {0}, n;
void dfs(int v)
{
    chk[v] = 1;
  //  printf("%d ", v);
    int i;
    for( i = 1 ; i <= n ; i++ ) if(!chk[i]&&G[v][i]) dfs(i);
}

int main(int argc, char *argv[])
{
	int i, m, s, e, k;
	srand(time(NULL));
	FILE *inn = fopen(argv[1], "r");
	FILE *in = fopen(argv[2], "r");
	fscanf(inn, "%d%d", &n, &k);
        fscanf(in,"%d",&m);
	if(k+m<n-1){ printf("0"); return 0; }
	for( i = 0 ; i < k ; i++ )
	{
		fscanf(inn,"%d%d",&s,&e);

        	G[s][e]=G[e][s]=1;
    	}
	for( i = 0 ; i < m ; i++ ) 
	{
        	fscanf(in,"%d%d",&s,&e);

        	G[s][e]=G[e][s]=1;
    	}
    dfs(1);
    for( i = 1 ; i <= n ; i++ )
        if( !chk[i] ){ printf("0"); return 0; }
    if( i == n+1 )  printf("1");
	return 0;
}
