#include <iostream>
#include <vector>
using namespace std;
vector<int> ans;
void DFS(int cur, int par, vector<int> &vis, vector<vector<int>> &adjList) {
cout << cur << '_' << par << endl;
if(vis[cur] == 1) return;
if(vis[cur] == 2) {
ans.push_back(cur);
return;
}
vis[cur] = 2;
for(auto &nx: adjList[cur]) {
if(nx != par) {
DFS(nx, cur, vis, adjList);
if(ans.size() > 0 && ans.back() == nx) {
if(cur == ans.front()) ans.push_back(-1);
else ans.push_back(cur);
return;
}
}
}
vis[cur] = 1;
return;
}
int main() {
cin.tie(0);
ios_base::sync_with_stdio(0);
int n, m;
cin >> n >> m;
vector<vector<int>> adjList(n);
vector<int> vis(n);
for(int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
u--, v--;
adjList[u].push_back(v);
adjList[v].push_back(u);
}
for(int i = 0; i < n; i++){
if(!vis[i]){
DFS(i, -1, vis, adjList);
cout << i << endl;
if(!ans.empty()) break;
}
}
if(ans.empty()) {
cout << "IMPOSSIBLE\n";
} else {
cout << ans.size() << '\n';
ans.back() = ans.front();
for(auto a: ans) {
cout << a + 1 << ' ';
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGludD4gYW5zOwp2b2lkIERGUyhpbnQgY3VyLCBpbnQgcGFyLCB2ZWN0b3I8aW50PiAmdmlzLCB2ZWN0b3I8dmVjdG9yPGludD4+ICZhZGpMaXN0KSB7Cgljb3V0IDw8IGN1ciA8PCAnXycgPDwgcGFyIDw8IGVuZGw7CglpZih2aXNbY3VyXSA9PSAxKSByZXR1cm47CglpZih2aXNbY3VyXSA9PSAyKSB7CgkJYW5zLnB1c2hfYmFjayhjdXIpOwoJCXJldHVybjsKCX0KCXZpc1tjdXJdID0gMjsKCWZvcihhdXRvICZueDogYWRqTGlzdFtjdXJdKSB7CgkJaWYobnggIT0gcGFyKSB7CgkJCURGUyhueCwgY3VyLCB2aXMsIGFkakxpc3QpOwoJCQlpZihhbnMuc2l6ZSgpID4gMCAmJiBhbnMuYmFjaygpID09IG54KSB7CgkJCQlpZihjdXIgPT0gYW5zLmZyb250KCkpIGFucy5wdXNoX2JhY2soLTEpOwoJCQkJZWxzZSBhbnMucHVzaF9iYWNrKGN1cik7CgkJCQlyZXR1cm47CgkJCX0KCQl9Cgl9Cgl2aXNbY3VyXSA9IDE7CglyZXR1cm47Cn0KaW50IG1haW4oKSB7CgljaW4udGllKDApOwoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWludCBuLCBtOwoJY2luID4+IG4gPj4gbTsKCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gYWRqTGlzdChuKTsKCXZlY3RvcjxpbnQ+IHZpcyhuKTsKCWZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCQlpbnQgdSwgdjsKCQljaW4gPj4gdSA+PiB2OwoJCXUtLSwgdi0tOwoJCWFkakxpc3RbdV0ucHVzaF9iYWNrKHYpOwoJCWFkakxpc3Rbdl0ucHVzaF9iYWNrKHUpOwoJfQoJCglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCQlpZighdmlzW2ldKXsKCQkJREZTKGksIC0xLCB2aXMsIGFkakxpc3QpOwoJCQljb3V0IDw8IGkgPDwgZW5kbDsKCQkJaWYoIWFucy5lbXB0eSgpKSBicmVhazsKCQl9Cgl9CglpZihhbnMuZW1wdHkoKSkgewoJCWNvdXQgPDwgIklNUE9TU0lCTEVcbiI7Cgl9IGVsc2UgewoJCWNvdXQgPDwgYW5zLnNpemUoKSA8PCAnXG4nOwoJCWFucy5iYWNrKCkgPSBhbnMuZnJvbnQoKTsKCQlmb3IoYXV0byBhOiBhbnMpIHsKCQkJY291dCA8PCBhICsgMSA8PCAnICc7CgkJfQoJCWNvdXQgPDwgJ1xuJzsKCX0KCXJldHVybiAwOwp9