#include <fstream>
#include <vector>
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
pair <int,int> v[500001];
int cnt;
int e[500001];
bool marcat[500001];
vector <int> a[100001];
void euler(int x)
{
int muchie,y;
for(int i=0; i<a[x].size(); i++)
{
muchie=a[x][i];
if(!marcat[muchie]){
marcat[muchie]=1;
y=v[muchie].second;
if(y==x)
y=v[muchie].first;
euler(y);
}
}
e[++cnt]=x;
}
int main()
{
int n,m,i,x,y;
in>>n>>m;
for(i=1; i<=m; i++)
{
in>>x>>y;
v[i].first=x;
v[i].second=y;
a[x].push_back(i);
a[y].push_back(i);
}
for(i=1; i<=n; i++)
if(a[i].size()%2)
cnt++;
if(cnt==0)
{
euler(1);
for(i=1;i<=cnt-1;i++)
out<<e[i]<<" ";
}
else
{
out<<-1;
return 0;
}
return 0;
}