/*
Copyright 2011 Marek "p2004a" Rusinowski
Depth-first search
*/
#include <cstdio>
#include <vector>
#define MAXN 1000000
std:: vector < int > edges[ MAXN] ;
bool visited[ MAXN] ;
void dfs( int v) {
printf ( "%d " , v + 1 ) ;
visited[ v] = true ;
for ( unsigned i = 0 ; i < edges[ v] .size ( ) ; ++ i) {
if ( ! visited[ edges[ v] [ i] ] ) {
dfs( edges[ v] [ i] ) ;
}
}
}
int main( ) {
int n, m, a, b;
scanf ( "%d %d" , & n, & m) ;
for ( int i = 0 ; i < m; ++ i) {
scanf ( "%d %d" , & a, & b) ;
edges[ -- a] .push_back ( -- b) ;
edges[ b] .push_back ( a) ;
}
dfs( 0 ) ;
printf ( "\n " ) ;
return 0 ;
}
LyoKICBDb3B5cmlnaHQgMjAxMSBNYXJlayAicDIwMDRhIiBSdXNpbm93c2tpCiAgRGVwdGgtZmlyc3Qgc2VhcmNoCiovCiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDx2ZWN0b3I+CgojZGVmaW5lIE1BWE4gMTAwMDAwMAogCnN0ZDo6dmVjdG9yPGludD4gZWRnZXNbTUFYTl07CmJvb2wgdmlzaXRlZFtNQVhOXTsKCnZvaWQgZGZzKGludCB2KSB7CiAgcHJpbnRmKCIlZCAiLCB2ICsgMSk7CiAgdmlzaXRlZFt2XSA9IHRydWU7CiAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGVkZ2VzW3ZdLnNpemUoKTsgKytpKSB7CiAgICBpZiAoIXZpc2l0ZWRbZWRnZXNbdl1baV1dKSB7CiAgICAgIGRmcyhlZGdlc1t2XVtpXSk7CiAgICB9CiAgfQp9CiAKaW50IG1haW4oKSB7CiAgaW50IG4sIG0sIGEsIGI7CiAgc2NhbmYoIiVkICVkIiwgJm4sICZtKTsKICBmb3IgKGludCBpID0gMDsgaSA8IG07ICsraSkgewogICAgc2NhbmYoIiVkICVkIiwgJmEsICZiKTsKICAgIGVkZ2VzWy0tYV0ucHVzaF9iYWNrKC0tYik7CiAgICBlZGdlc1tiXS5wdXNoX2JhY2soYSk7CiAgfQogIGRmcygwKTsKICBwcmludGYoIlxuIik7CiAgcmV0dXJuIDA7Cn0KIA==
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
prog.cpp:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
stdout