#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 = 0 ; i <= 2*n ; i++ ) if(!chk[i]&&G[v][i]) dfs(i);
}
int main(int argc, char *argv[])
{
	int i, m, s, e;
	srand(time(NULL));
	FILE *inn = fopen(argv[1], "r");
	FILE *in = fopen(argv[2], "r");
        fscanf(inn, "%d", &n);
	fscanf(in,"%d",&m);
	//if(n!=m){puts("0"); return 0;}
	for( i = 0 ; i < m ; i++ )
	{
        	int p = fscanf(in,"%d%d",&s,&e);
		if(p<2) {puts("0"); return 0;}
        	G[s][e]=G[e][s]=1;
    	}
    	dfs(1);
	for( i = n+1 ; i <= 4999 ; i++ )
		if( chk[i] ) return puts("0"), 0;
	for( i = 1 ; i <= n ; i++ )
		if( !chk[i] ) return puts("0"), 0;
	if( chk[0] ) return puts("0"), 0;
    	printf("1\n");
		return 0;
}
