#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll long long
#define ull unsigned long long
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(), (x).end()
#define MASK(i) ((1LL)<<(i))
#define GETBIT(x,i) (((x)>>(i))&1)
#define TURNOFF(x,i) ((x)&(~(1<<i)))
#define CNTBIT(x) __builtin_popcount(x)
#define LOG 20
#define MASK(i) ((1LL)<<(i))
#define EL cout << "\n"
#define FU(i, a, b) for(int i=a; i<=b; i++)
#define FD(i, a, b) for(int i=a; i>=b; i--)
#define REP(i, x) for(int i=0; i<x; i++)
#define REPD(i, x) for(int i=x-1; i>=0; i--)
const int MAX = 2e5 + 5;
const int mod = 1e9 + 7;
const int base = 31;
const int INF = 1e9 + 7;
typedef pair<int, int> ii;
#define task "long"
void init()
{
if (fopen(task".inp","r"))
{
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
else if (fopen(task".in", "r"))
{
freopen(task".in", "r", stdin);
freopen(task".out", "w", stdout);
}
}
void fastio()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}
int dx[]={0,1,0,-1,1,1,-1,-1};
int dy[]={1,0,-1,0,1,-1,1,-1};
template<class X, class Y> bool maximize(X &x, Y y){ if (x < y) {x = y; return true;} return false;};
template<class X, class Y> bool minimize(X &x, Y y){ if (x > y) {x = y; return true;} return false;};
void add(int &x, int y) { x += y; if (x>=mod) x-=mod;}
void sub(int &x, int y) { x -= y; if (x<0) x+=mod;}
int mul(int x, int y) {return 1LL * x * y % mod;}
int calPw(int x, int y)
{
int ans = 1;
while(y)
{
if (y&1) ans = 1LL * ans * x % mod;
x = 1LL * x * x % mod;
y >>= 1;
}
return ans;
}
int n, m, sz=0;
int deg[205], w[205][205], node[205];
bool edge[205][205];
void read()
{
cin >> n >> m;
FU(i, 1, m)
{
int u, v, c; cin >> u >> v >> c;
edge[u][v] = edge[v][u] = true;
w[u][v] = w[v][u] = c;
++deg[u]; ++deg[v];
}
}
void sol()
{
stack<int> st;
st.push(1);
while(!st.empty())
{
int u = st.top();
if (deg[u] == 0)
{
node[++sz]= u;
st.pop();
continue;
}
FU(v, 1, n) if (edge[u][v])
{
edge[u][v] = edge[v][u] = false;
--deg[u]; --deg[v];
st.push(v);
break;
}
}
if (sz != m + 1) {cout << -1; return;}
cout << sz, EL;
FU(i, 1, sz) cout << node[i] << " ";
}
signed main()
{
fastio();
init();
int TEST = 1;
//cin >> TEST;
while(TEST--)
{
read();
sol();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBTWih4KSAoKGludCkoeCkuc2l6ZSgpKQojZGVmaW5lIEFMTCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgTUFTSyhpKSAoKDFMTCk8PChpKSkKI2RlZmluZSBHRVRCSVQoeCxpKSAoKCh4KT4+KGkpKSYxKQojZGVmaW5lIFRVUk5PRkYoeCxpKSAoKHgpJih+KDE8PGkpKSkKI2RlZmluZSBDTlRCSVQoeCkgX19idWlsdGluX3BvcGNvdW50KHgpCiNkZWZpbmUgTE9HIDIwCiNkZWZpbmUgTUFTSyhpKSAoKDFMTCk8PChpKSkKI2RlZmluZSBFTCBjb3V0IDw8ICJcbiIKI2RlZmluZSBGVShpLCBhLCBiKSBmb3IoaW50IGk9YTsgaTw9YjsgaSsrKQojZGVmaW5lIEZEKGksIGEsIGIpIGZvcihpbnQgaT1hOyBpPj1iOyBpLS0pCiNkZWZpbmUgUkVQKGksIHgpIGZvcihpbnQgaT0wOyBpPHg7IGkrKykKI2RlZmluZSBSRVBEKGksIHgpIGZvcihpbnQgaT14LTE7IGk+PTA7IGktLSkKY29uc3QgaW50IE1BWCA9IDJlNSArIDU7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgYmFzZSA9IDMxOwpjb25zdCBpbnQgSU5GID0gMWU5ICsgNzsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsKCiNkZWZpbmUgdGFzayAibG9uZyIKdm9pZCBpbml0KCkKewogICAgaWYgKGZvcGVuKHRhc2siLmlucCIsInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKHRhc2siLmlucCIsInIiLHN0ZGluKTsKICAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsInciLHN0ZG91dCk7CiAgICB9CiAgICBlbHNlIGlmIChmb3Blbih0YXNrIi5pbiIsICJyIikpCiAgICB7CiAgICAgICBmcmVvcGVuKHRhc2siLmluIiwgInIiLCBzdGRpbik7CiAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KfQoKdm9pZCBmYXN0aW8oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKfQppbnQgZHhbXT17MCwxLDAsLTEsMSwxLC0xLC0xfTsKaW50IGR5W109ezEsMCwtMSwwLDEsLTEsMSwtMX07CnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+IGJvb2wgbWF4aW1pemUoWCAmeCwgWSB5KXsgaWYgKHggPCB5KSB7eCA9IHk7IHJldHVybiB0cnVlO30gcmV0dXJuIGZhbHNlO307CnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+IGJvb2wgbWluaW1pemUoWCAmeCwgWSB5KXsgaWYgKHggPiB5KSB7eCA9IHk7IHJldHVybiB0cnVlO30gcmV0dXJuIGZhbHNlO307CnZvaWQgYWRkKGludCAmeCwgaW50IHkpIHsgeCArPSB5OyBpZiAoeD49bW9kKSB4LT1tb2Q7fQp2b2lkIHN1YihpbnQgJngsIGludCB5KSB7IHggLT0geTsgaWYgKHg8MCkgeCs9bW9kO30KaW50IG11bChpbnQgeCwgaW50IHkpIHtyZXR1cm4gMUxMICogeCAqIHkgJSBtb2Q7fQppbnQgY2FsUHcoaW50IHgsIGludCB5KQp7CiAgICBpbnQgYW5zID0gMTsKICAgIHdoaWxlKHkpCiAgICB7CiAgICAgICAgaWYgKHkmMSkgYW5zID0gMUxMICogYW5zICogeCAlIG1vZDsKICAgICAgICB4ID0gMUxMICogeCAqIHggJSBtb2Q7CiAgICAgICAgeSA+Pj0gMTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KaW50IG4sIG0sIHN6PTA7CmludCBkZWdbMjA1XSwgd1syMDVdWzIwNV0sIG5vZGVbMjA1XTsKYm9vbCBlZGdlWzIwNV1bMjA1XTsKdm9pZCByZWFkKCkKewogICBjaW4gPj4gbiA+PiBtOwogICBGVShpLCAxLCBtKQogICB7CiAgICAgIGludCB1LCB2LCBjOyBjaW4gPj4gdSA+PiB2ID4+IGM7CiAgICAgIGVkZ2VbdV1bdl0gPSBlZGdlW3ZdW3VdID0gdHJ1ZTsKICAgICAgd1t1XVt2XSA9IHdbdl1bdV0gPSBjOwogICAgICArK2RlZ1t1XTsgKytkZWdbdl07CiAgIH0KfQp2b2lkIHNvbCgpCnsKICAgc3RhY2s8aW50PiBzdDsKICAgc3QucHVzaCgxKTsKICAgd2hpbGUoIXN0LmVtcHR5KCkpCiAgIHsKICAgICAgaW50IHUgPSBzdC50b3AoKTsKICAgICAgaWYgKGRlZ1t1XSA9PSAwKQogICAgICB7CiAgICAgICAgIG5vZGVbKytzel09IHU7CiAgICAgICAgIHN0LnBvcCgpOwogICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBGVSh2LCAxLCBuKSBpZiAoZWRnZVt1XVt2XSkKICAgICAgewogICAgICAgICBlZGdlW3VdW3ZdID0gZWRnZVt2XVt1XSA9IGZhbHNlOwogICAgICAgICAtLWRlZ1t1XTsgLS1kZWdbdl07CiAgICAgICAgIHN0LnB1c2godik7CiAgICAgICAgIGJyZWFrOwogICAgICB9CiAgIH0KICAgaWYgKHN6ICE9IG0gKyAxKSB7Y291dCA8PCAtMTsgcmV0dXJuO30KICAgY291dCA8PCBzeiwgRUw7CiAgIEZVKGksIDEsIHN6KSBjb3V0IDw8IG5vZGVbaV0gPDwgIiAiOwp9CnNpZ25lZCBtYWluKCkKewogICAgZmFzdGlvKCk7CiAgICBpbml0KCk7CiAgICBpbnQgVEVTVCA9IDE7CiAgICAvL2NpbiA+PiBURVNUOwogICAgd2hpbGUoVEVTVC0tKQogICAgewogICAgICAgIHJlYWQoKTsKICAgICAgICBzb2woKTsKICAgIH0KfQo=