#include <fstream>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int n,m,x,y,p,u,k1,k,poz,i,nr,cd[100001],v[100001],d[100001],c[100001],c1[100001],a[5001][5001];
int main ()
{ f>>n>>m;
for(i=1;i<=m;++i)
{f>>x>>y;
a[x][y]=a[y][x]=1;
d[x]++;
d[y]++;
}
p=1;
u=1;
cd[p]=1;
v[1]=1;
while(p<=u)
{x=cd[p];
p++;
for(i=1;i<=n;++i)
if(a[x][i]==1&&v[i]==0)
{u++;
cd[u]=i;
v[i]=1;
}
}
nr=0;
for(i=1;i<=n;++i)
if(d[i]%2!=0)
nr++;
if(nr==0&&u==n)
{k=1;
c[1]=1;
while(1)
{x=c[k];
for(i=1;i<=n;++i)
if(a[x][i]==1)
{k++;
c[k]=i;
d[x]--;
d[i]--;
a[x][i]=a[i][x]=0;
break;
}
if(c[k]==c[1])
break;
}
while(k<=m)
{for(i=1;i<=k;++i)
if(d[c[i]]>0)
{poz=i;
k1=i;
c1[k1]=c[i];
break;
}
while(1)
{x=c1[k1];
for(i=1;i<=n;++i)
if(a[x][i]==1)
{k1++;
c1[k1]=i;
d[x]--;
d[i]--;
a[x][i]=a[i][x]=0;
break;
}
if(c1[k1]==c1[k-1])
break;
}
nr=poz;
y=c[k];
for(i=k-1;i<=k1;i++)
{c[i]=c1[nr];
nr++;}
c[i]=y;
k=k1+1;
}
if(c[1]==c[k])
for(i=1;i<=k;++i)
g<<c[i]<<' ' ;}
else
g<<"-1"<<'\n';
return 0;
}