#include <iostream>
#include <map>
#include <vector>
using namespace std;
bool found=false;
void dfs(map<int,map<int,int> >& Map,map<int,int>& Map2,int i,int parent,vector<int> path)
{
if(found == true)
{
return;
}
if(Map2.count(i) >0)
{
if(path.size() > 2)
{
found=true;
vector<int> V;
int count1=1;
V.push_back(i+1);
for(int j=path.size()-1;j>=0;j--)
{
V.push_back(path[j]+1);
count1++;
if(path[j] == i)
{
break;
}
}
cout<<count1<<endl;;
for(int i=0;i<V.size();i++)
{
cout<<V[i]<<" ";
}
cout<<endl;
}
return;
}
Map2[i]=1;
path.push_back(i);
for(auto it=Map[i].begin();it!=Map[i].end();it++)
{
if(it->first == parent)
{
continue;
}
else
{
dfs(Map,Map2,it->first,i,path);
}
}
path.pop_back();
}
int main() {
int n,m;
cin>>n>>m;
map<int,map<int,int> > Map;
for(int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
Map[a-1][b-1]=1;
Map[b-1][a-1]=1;
}
map<int,int> Map2;
found=false;
for(int i=0;i<n;i++)
{
if(Map2.count(i) <= 0)
{
vector<int> path;
dfs(Map,Map2,i,-1,path);
}
}
if(found == false)
{
cout<<"IMPOSSIBLE"<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpib29sIGZvdW5kPWZhbHNlOwp2b2lkIGRmcyhtYXA8aW50LG1hcDxpbnQsaW50PiA+JiBNYXAsbWFwPGludCxpbnQ+JiBNYXAyLGludCBpLGludCBwYXJlbnQsdmVjdG9yPGludD4gcGF0aCkKewoJaWYoZm91bmQgPT0gdHJ1ZSkKCXsKCQlyZXR1cm47Cgl9CgkKCWlmKE1hcDIuY291bnQoaSkgPjApCgl7CgkJaWYocGF0aC5zaXplKCkgPiAyKQoJCXsKCQkJZm91bmQ9dHJ1ZTsKCQkJdmVjdG9yPGludD4gVjsKCQkJaW50IGNvdW50MT0xOwoJCQlWLnB1c2hfYmFjayhpKzEpOwoJCQlmb3IoaW50IGo9cGF0aC5zaXplKCktMTtqPj0wO2otLSkKCQkJewoJCQkJVi5wdXNoX2JhY2socGF0aFtqXSsxKTsKCQkJCWNvdW50MSsrOwoJCQkJaWYocGF0aFtqXSA9PSBpKQoJCQkJewoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJCQoJCQljb3V0PDxjb3VudDE8PGVuZGw7OwoJCQlmb3IoaW50IGk9MDtpPFYuc2l6ZSgpO2krKykKCQkJewoJCQkJY291dDw8VltpXTw8IiAiOwoJCQl9CgkJCWNvdXQ8PGVuZGw7CgkJfQoJCXJldHVybjsKCX0KCU1hcDJbaV09MTsKCXBhdGgucHVzaF9iYWNrKGkpOwoJZm9yKGF1dG8gaXQ9TWFwW2ldLmJlZ2luKCk7aXQhPU1hcFtpXS5lbmQoKTtpdCsrKQoJewoJCWlmKGl0LT5maXJzdCA9PSBwYXJlbnQpCgkJewoJCQljb250aW51ZTsKCQl9CgkJZWxzZQoJCXsKCQkJZGZzKE1hcCxNYXAyLGl0LT5maXJzdCxpLHBhdGgpOwoJCX0KCQkKCX0KCXBhdGgucG9wX2JhY2soKTsKCQp9CgoKaW50IG1haW4oKSB7CgoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCQoJbWFwPGludCxtYXA8aW50LGludD4gPiBNYXA7Cglmb3IoaW50IGk9MDtpPG07aSsrKQoJewoJCWludCBhLGI7CgkJY2luPj5hPj5iOwoJCU1hcFthLTFdW2ItMV09MTsKCQlNYXBbYi0xXVthLTFdPTE7Cgl9CgkKCW1hcDxpbnQsaW50PiBNYXAyOwoJZm91bmQ9ZmFsc2U7Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCWlmKE1hcDIuY291bnQoaSkgPD0gMCkKCQl7CgkJCXZlY3RvcjxpbnQ+IHBhdGg7CgkJCWRmcyhNYXAsTWFwMixpLC0xLHBhdGgpOwoJCX0KCX0KCQoJaWYoZm91bmQgPT0gZmFsc2UpCgl7CgkJY291dDw8IklNUE9TU0lCTEUiPDxlbmRsOwoJfQoKCglyZXR1cm4gMDsKfQ==