#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 1e5 + 5;
int n, m;
vector<int> adj[N];
bool vis[N];
int p[N];
void bfs(int s) {
for (int u = 1; u <= n; u++) {
vis[u] = false;
p[u] = 0;
}
queue<int> q;
vis[s] = true;
q.push(s);
while (!q.empty()) {
int u = q.front(); q.pop();
for (int v : adj[u]) {
if (!vis[v]) {
vis[v] = true;
p[v] = u;
q.push(v);
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
bfs(1);
if (!vis[n]) {
cout << "IMPOSSIBLE" << '\n';
return 0;
}
vector<int> path;
for (int u = n; u > 0; u = p[u]) path.push_back(u);
reverse(path.begin(), path.end());
cout << path.size() << '\n';
for (int u : path) cout << u << ' ';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAxZTUgKyA1OyAKCmludCBuLCBtOyAgCnZlY3RvcjxpbnQ+IGFkaltOXTsgCgpib29sIHZpc1tOXTsgCmludCBwW05dOyAKCnZvaWQgYmZzKGludCBzKSB7Cglmb3IgKGludCB1ID0gMTsgdSA8PSBuOyB1KyspIHsKCQl2aXNbdV0gPSBmYWxzZTsgIAoJCXBbdV0gPSAwOyAgCgl9CgoJcXVldWU8aW50PiBxOyAgCgl2aXNbc10gPSB0cnVlOyAgCglxLnB1c2gocyk7ICAKCgl3aGlsZSAoIXEuZW1wdHkoKSkgewoJCWludCB1ID0gcS5mcm9udCgpOyBxLnBvcCgpOyAKCgkJZm9yIChpbnQgdiA6IGFkalt1XSkgewoJCQlpZiAoIXZpc1t2XSkgewoJCQkJdmlzW3ZdID0gdHJ1ZTsgCgkJCQlwW3ZdID0gdTsgIAoJCQkJcS5wdXNoKHYpOyAKCQkJfQoJCX0KCX0KfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgCQoJY2luID4+IG4gPj4gbTsgCgoJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCQlpbnQgdSwgdjsgCgkJY2luID4+IHUgPj4gdjsgCgkJYWRqW3VdLnB1c2hfYmFjayh2KTsgCgkJYWRqW3ZdLnB1c2hfYmFjayh1KTsgCgl9CgoJYmZzKDEpOyAKCglpZiAoIXZpc1tuXSkgewoJCWNvdXQgPDwgIklNUE9TU0lCTEUiIDw8ICdcbic7IAoJCXJldHVybiAwOyAKCX0KCgl2ZWN0b3I8aW50PiBwYXRoOyAgCglmb3IgKGludCB1ID0gbjsgdSA+IDA7IHUgPSBwW3VdKSBwYXRoLnB1c2hfYmFjayh1KTsgCgoJcmV2ZXJzZShwYXRoLmJlZ2luKCksIHBhdGguZW5kKCkpOyAgCgoJY291dCA8PCBwYXRoLnNpemUoKSA8PCAnXG4nOyAKCWZvciAoaW50IHUgOiBwYXRoKSBjb3V0IDw8IHUgPDwgJyAnOyAKfQ==