#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <set>
using namespace std;
const int MAXN =1000;
vector<int> g[MAXN];
bool used[MAXN];
int timer, tin[MAXN], fup[MAXN];
set<int> s;
void dfs (int v, int p = -1) {
used[v] = true;
tin[v] = fup[v] = timer++;
int children = 0;
for (size_t i=0; i<g[v].size(); ++i) {
int to = g[v][i];
if (used[to])
fup[v] = min (fup[v], tin[to]);
else {
dfs (to, v);
fup[v] = min (fup[v], fup[to]);
if (fup[to] >= tin[v] && p != -1)
s.insert(v + 1);
++children;
}
}
if (p == -1 && children > 1)
s.insert(v + 1);
}
int main() {
int n,a,b, m;
//freopen("points.in", "r", stdin);
//freopen("points.out", "W", stdout);
cin>>n >> m;
for (int i = 0; i < m; i++)
{
cin >> a>>b;
a--;
b--;
g[b].push_back(a);
g[a].push_back(b);
}
timer = 0;
for (int i=0; i<n; ++i)
used[i] = false;
dfs (0);
cout << s.size() << endl;
for(auto i = s.begin(); i != s.end(); ++i){
cout << *i<<"\n";
}
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTUFYTiA9MTAwMDsKdmVjdG9yPGludD4gZ1tNQVhOXTsKYm9vbCB1c2VkW01BWE5dOwppbnQgdGltZXIsIHRpbltNQVhOXSwgZnVwW01BWE5dOwpzZXQ8aW50PiBzOwogCnZvaWQgZGZzIChpbnQgdiwgaW50IHAgPSAtMSkgewogdXNlZFt2XSA9IHRydWU7CiB0aW5bdl0gPSBmdXBbdl0gPSB0aW1lcisrOwogaW50IGNoaWxkcmVuID0gMDsKIGZvciAoc2l6ZV90IGk9MDsgaTxnW3ZdLnNpemUoKTsgKytpKSB7CiAgaW50IHRvID0gZ1t2XVtpXTsKICBpZiAodXNlZFt0b10pCiAgIGZ1cFt2XSA9IG1pbiAoZnVwW3ZdLCB0aW5bdG9dKTsKICBlbHNlIHsKICAgZGZzICh0bywgdik7CiAgIGZ1cFt2XSA9IG1pbiAoZnVwW3ZdLCBmdXBbdG9dKTsKICAgaWYgKGZ1cFt0b10gPj0gdGluW3ZdICYmIHAgIT0gLTEpCiAgICBzLmluc2VydCh2ICsgMSk7CiAgICsrY2hpbGRyZW47CiAgfQogfQogaWYgKHAgPT0gLTEgJiYgY2hpbGRyZW4gPiAxKQogIHMuaW5zZXJ0KHYgKyAxKTsKfQogCmludCBtYWluKCkgewoKIGludCBuLGEsYiwgbTsKIC8vZnJlb3BlbigicG9pbnRzLmluIiwgInIiLCBzdGRpbik7CiAvL2ZyZW9wZW4oInBvaW50cy5vdXQiLCAiVyIsIHN0ZG91dCk7CiBjaW4+Pm4gPj4gbTsKIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKQogewogIGNpbiA+PiBhPj5iOwogIGEtLTsKICBiLS07CiAgZ1tiXS5wdXNoX2JhY2soYSk7CiAgZ1thXS5wdXNoX2JhY2soYik7CiB9CiAKIHRpbWVyID0gMDsKIGZvciAoaW50IGk9MDsgaTxuOyArK2kpCiAgdXNlZFtpXSA9IGZhbHNlOwogZGZzICgwKTsKIGNvdXQgPDwgcy5zaXplKCkgPDwgZW5kbDsKIGZvcihhdXRvIGkgPSBzLmJlZ2luKCk7IGkgIT0gcy5lbmQoKTsgKytpKXsKICBjb3V0IDw8ICppPDwiXG4iOwogfQp9