#include<iostream>
#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;
int color[100001];
vector<vector<int > > myvector (100001);
vector<int> color1;
vector<int> color2;
queue<int> myq;
int main()
{
int n;
scanf("%d",&n);
int m;
scanf("%d",&m);
int s=m;
while(m--)
{
int a,b;
scanf("%d%d",&a,&b);
myvector[a].push_back(b);
myvector[b].push_back(a);
}
int size1=0;
int size2=0;
int i;
for(i=1;i<n+1;i++)
{
if (color[i]!=0)
continue;
if (myvector[i].size()==0)
continue;
color[i]=1;
color1.push_back(i);
size1++;
myq.push(i);
while(!myq.empty())
{
int p=myq.front();
myq.pop();
for(i=0;i<myvector[p].size();i++)
{
if (color[myvector[p][i]]==0)
{
if (color[p]==1)
{size2++;
color2.push_back(myvector[p][i]);
color[myvector[p][i]]=2;
}
else
{size1++;
color[myvector[p][i]]=1;
color1.push_back(myvector[p][i]);
}
myq.push(myvector[p][i]);
}
else if (color[myvector[p][i]]==color[p])
{
printf("-1\n");
return 0;
}
}
}
}
printf("%d\n",size1);
for(vector<int> :: iterator it=color1.begin();it!=color1.end();++it)
{
printf("%d ",(*it));
}
printf("\n");
printf("%d\n",size2);
for(vector<int> ::iterator it=color2.begin();it!=color2.end();++it)
{
printf("%d ",(*it));
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBjb2xvclsxMDAwMDFdOwp2ZWN0b3I8dmVjdG9yPGludCA+ID4gbXl2ZWN0b3IgKDEwMDAwMSk7CnZlY3RvcjxpbnQ+IGNvbG9yMTsKdmVjdG9yPGludD4gY29sb3IyOwpxdWV1ZTxpbnQ+IG15cTsKCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBzY2FuZigiJWQiLCZuKTsKCgogICAgaW50IG07CiAgICBzY2FuZigiJWQiLCZtKTsKCiAgICBpbnQgcz1tOwogICAgd2hpbGUobS0tKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGEsYjsKICAgICAgICAgICAgc2NhbmYoIiVkJWQiLCZhLCZiKTsKICAgICAgICAgICAgbXl2ZWN0b3JbYV0ucHVzaF9iYWNrKGIpOwogICAgICAgICAgICBteXZlY3RvcltiXS5wdXNoX2JhY2soYSk7CiAgICAgICAgfQoKICAgIGludCBzaXplMT0wOwogICAgaW50IHNpemUyPTA7CgogICAgaW50IGk7CgogICAgZm9yKGk9MTtpPG4rMTtpKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoY29sb3JbaV0hPTApCiAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaWYgKG15dmVjdG9yW2ldLnNpemUoKT09MCkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgY29sb3JbaV09MTsKICAgICAgICAgICAgY29sb3IxLnB1c2hfYmFjayhpKTsKICAgICAgICAgICAgc2l6ZTErKzsKICAgICAgICAgICAgbXlxLnB1c2goaSk7CgogICAgICAgIHdoaWxlKCFteXEuZW1wdHkoKSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBwPW15cS5mcm9udCgpOwogICAgICAgICAgICBteXEucG9wKCk7CiAgICAgICAgICAgIGZvcihpPTA7aTxteXZlY3RvcltwXS5zaXplKCk7aSsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChjb2xvcltteXZlY3RvcltwXVtpXV09PTApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yW3BdPT0xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAge3NpemUyKys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjIucHVzaF9iYWNrKG15dmVjdG9yW3BdW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yW215dmVjdG9yW3BdW2ldXT0yOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2l6ZTErKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yW215dmVjdG9yW3BdW2ldXT0xOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IxLnB1c2hfYmFjayhteXZlY3RvcltwXVtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG15cS5wdXNoKG15dmVjdG9yW3BdW2ldKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2xvcltteXZlY3RvcltwXVtpXV09PWNvbG9yW3BdKQogICAgICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCItMVxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICB9CgogICAgcHJpbnRmKCIlZFxuIixzaXplMSk7CgogICAgZm9yKHZlY3RvcjxpbnQ+ICA6OiBpdGVyYXRvciBpdD1jb2xvcjEuYmVnaW4oKTtpdCE9Y29sb3IxLmVuZCgpOysraXQpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIiVkICIsKCppdCkpOwogICAgICAgIH0KCiAgICBwcmludGYoIlxuIik7CiAgICBwcmludGYoIiVkXG4iLHNpemUyKTsKCiAgICAgZm9yKHZlY3RvcjxpbnQ+IDo6aXRlcmF0b3IgaXQ9Y29sb3IyLmJlZ2luKCk7aXQhPWNvbG9yMi5lbmQoKTsrK2l0KQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCIlZCAiLCgqaXQpKTsKICAgICAgICB9CgoKCgoKCgoKICAgIHJldHVybiAwOwp9Cg==