#include int ans[105]; int max = 0; int n, k; int black[105]; int pos = 0; char colorNode[105]; char adjacent[105][105]; void color(void) { int i, j; int flag; if( pos > max ) { max = pos; for( i = 0 ; i < max ; i++ ) ans[i] = black[i]; } for(i = 1 ; i <= n ; i++) { /* trying to color this black */ if( colorNode[i] == 1 ) /* already black */ continue; flag = 1; for( j = 1 ; j <= n ; j++ ) { if( j == i ) continue; if( colorNode[j] == 1 && adjacent[i][j] == 1 ) { flag = 0; break; } } if( flag ) { colorNode[i] = 1; black[pos++] = i; color(); pos--; colorNode[i] = 0; } } } int main() { int i, t1, t2; scanf("%d %d", &n, &k); for(i = 0 ; i < k ; i++) { scanf("%d %d", &t1, &t2); adjacent[t1][t2] = adjacent[t2][t1] = 1; } color(); printf("%d\n", max); for(i = 0 ; i < max ; i++) printf("%d ", ans[i]); return 0; }