#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define nmax 200005
vector<int> a[nmax];
ll cha[nmax] , dinhdau = 0 , dinhcuoi = 0;
bool visited[nmax] , instack[nmax] , cycle[nmax];
bool dfs(ll u , ll parent){
visited[u] = true;
for (auto i : a[u]){
if (i == parent){
continue;
}
if (visited[i]){
dinhdau = i;
dinhcuoi = u;
return true;
}
else if (!visited[i]){
cha[i] = u;
if (dfs(i , u)) return true;
}
}
return false;
}
int main(){
int n , m;
cin >> n >> m;
for (int i = 1 ; i <= m ; i++){
int x , y;
cin >> x >> y;
a[x].push_back(y);
a[y].push_back(x);
}
for (int i = 1 ; i <= n ; i++){
if (!visited[i]){
if (dfs(i , -1)){
break;
}
}
}
vector<ll> ans;
ll cur = dinhcuoi;
while(cur != dinhdau){
ans.push_back(cur);
cur = cha[cur];
}
if (dinhdau == 0 or dinhcuoi == 0){
cout << "IMPOSSIBLE";
return 0;
}
ans.push_back(dinhdau);
reverse(ans.begin() , ans.end());
ans.push_back(dinhdau);
cout << ans.size() << endl;
for (auto i : ans){
cout << i << " ";
}
// for (int i = 1 ;i <= n ;i++){
// cout << cycle[i] << endl;
// }
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBubWF4IDIwMDAwNQp2ZWN0b3I8aW50PiBhW25tYXhdOwpsbCBjaGFbbm1heF0gLCBkaW5oZGF1ID0gMCAsIGRpbmhjdW9pID0gMDsKYm9vbCB2aXNpdGVkW25tYXhdICwgaW5zdGFja1tubWF4XSAsIGN5Y2xlW25tYXhdOwpib29sIGRmcyhsbCB1ICwgbGwgcGFyZW50KXsKICAgIHZpc2l0ZWRbdV0gPSB0cnVlOwogICAgZm9yIChhdXRvIGkgOiBhW3VdKXsKICAgICAgICBpZiAoaSA9PSBwYXJlbnQpewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZpc2l0ZWRbaV0pewogICAgICAgICAgICBkaW5oZGF1ID0gaTsKICAgICAgICAgICAgZGluaGN1b2kgPSB1OwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoIXZpc2l0ZWRbaV0pewogICAgICAgICAgICBjaGFbaV0gPSB1OwogICAgICAgICAgICBpZiAoZGZzKGkgLCB1KSkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9CmludCBtYWluKCl7CiAgICBpbnQgbiAsIG07CiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG0gOyBpKyspewogICAgICAgIGludCB4ICwgeTsKICAgICAgICBjaW4gPj4geCA+PiB5OwogICAgICAgIGFbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgIGFbeV0ucHVzaF9iYWNrKHgpOwogICAgfQogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspewogICAgICAgIGlmICghdmlzaXRlZFtpXSl7CiAgICAgICAgICAgIGlmIChkZnMoaSAsIC0xKSl7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHZlY3RvcjxsbD4gYW5zOwogICAgbGwgY3VyID0gZGluaGN1b2k7CiAgICB3aGlsZShjdXIgIT0gZGluaGRhdSl7CiAgICAgICAgYW5zLnB1c2hfYmFjayhjdXIpOwogICAgICAgIGN1ciA9IGNoYVtjdXJdOwogICAgfQogICAgaWYgKGRpbmhkYXUgPT0gMCBvciBkaW5oY3VvaSA9PSAwKXsKICAgICAgICAgICAgY291dCA8PCAiSU1QT1NTSUJMRSI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgfQogICAgYW5zLnB1c2hfYmFjayhkaW5oZGF1KTsKICAgIHJldmVyc2UoYW5zLmJlZ2luKCkgLCBhbnMuZW5kKCkpOwogICAgYW5zLnB1c2hfYmFjayhkaW5oZGF1KTsKICAgIGNvdXQgPDwgYW5zLnNpemUoKSA8PCBlbmRsOwogICAgZm9yIChhdXRvIGkgOiBhbnMpewogICAgICAgIGNvdXQgPDwgaSA8PCAiICI7CiAgICB9CiAKIAovLyAgICBmb3IgKGludCBpID0gMSA7aSA8PSBuIDtpKyspewovLyAgICAgICAgY291dCA8PCBjeWNsZVtpXSA8PCBlbmRsOwovLyAgICB9Cn0=