#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;
	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 = 1 ; i <= n ; i++ )
        	if( !chk[i] ){ printf("0"); return 0; }
    	if( i == n+1 )  printf("1");
		return 0;
}
