#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
const int MAXN = 100005;
vector<int> adj[MAXN];
bool visited[MAXN];
int tin[MAXN], low[MAXN], timer;
set<pair<int, int>> bridges;
bool dfsCheck(int u, int target) {
visited[u] = true;
if (u == target) return true;
for (int v : adj[u]) {
if (!visited[v] && dfsCheck(v, target)) return true;
}
return false;
}
void tim_canh_cau(int n) {
for (int u = 1; u <= n; ++u) {
for (int v : adj[u]) {
if (u < v) {
adj[u].erase(remove(adj[u].begin(), adj[u].end(), v), adj[u].end());
adj[v].erase(remove(adj[v].begin(), adj[v].end(), u), adj[v].end());
fill(visited, visited + n + 1, false);
if (!dfsCheck(u, v)) {
cout << u << " "<< v << endl;
}
adj[u].push_back(v);
adj[v].push_back(u);
}
}
}
}
int main() {
int n, m;
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);
}
tim_canh_cau(n);
}
CSNpbmNsdWRlIDxpb3N0cmVhbT4KCSNpbmNsdWRlIDx2ZWN0b3I+CgkjaW5jbHVkZSA8c2V0PgoJI2luY2x1ZGUgPGFsZ29yaXRobT4KCQoJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCQoJY29uc3QgaW50IE1BWE4gPSAxMDAwMDU7Cgl2ZWN0b3I8aW50PiBhZGpbTUFYTl07Cglib29sIHZpc2l0ZWRbTUFYTl07CglpbnQgdGluW01BWE5dLCBsb3dbTUFYTl0sIHRpbWVyOwoJc2V0PHBhaXI8aW50LCBpbnQ+PiBicmlkZ2VzOwoJCglib29sIGRmc0NoZWNrKGludCB1LCBpbnQgdGFyZ2V0KSB7CgkgICAgdmlzaXRlZFt1XSA9IHRydWU7CgkgICAgaWYgKHUgPT0gdGFyZ2V0KSByZXR1cm4gdHJ1ZTsKCSAgICBmb3IgKGludCB2IDogYWRqW3VdKSB7CgkgICAgICAgIGlmICghdmlzaXRlZFt2XSAmJiBkZnNDaGVjayh2LCB0YXJnZXQpKSByZXR1cm4gdHJ1ZTsKCSAgICB9CgkgICAgcmV0dXJuIGZhbHNlOwoJfQoJCgl2b2lkIHRpbV9jYW5oX2NhdShpbnQgbikgewoJICAgIGZvciAoaW50IHUgPSAxOyB1IDw9IG47ICsrdSkgewoJICAgICAgICBmb3IgKGludCB2IDogYWRqW3VdKSB7CgkgICAgICAgICAgICBpZiAodSA8IHYpIHsKCSAgICAgICAgICAgICAgCgkgICAgICAgICAgICAgICAgYWRqW3VdLmVyYXNlKHJlbW92ZShhZGpbdV0uYmVnaW4oKSwgYWRqW3VdLmVuZCgpLCB2KSwgYWRqW3VdLmVuZCgpKTsKCSAgICAgICAgICAgICAgICBhZGpbdl0uZXJhc2UocmVtb3ZlKGFkalt2XS5iZWdpbigpLCBhZGpbdl0uZW5kKCksIHUpLCBhZGpbdl0uZW5kKCkpOwoJICAgICAgICAgICAgICAgIAoJICAgICAgICAgICAgICAgIGZpbGwodmlzaXRlZCwgdmlzaXRlZCArIG4gKyAxLCBmYWxzZSk7CgkgICAgICAgICAgICAgICAgaWYgKCFkZnNDaGVjayh1LCB2KSkgewoJICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IHUgPDwgIiAiPDwgdiA8PCBlbmRsOwoJICAgICAgICAgICAgICAgIH0KCSAgICAgICAgICAgICAgICAKCSAgICAgICAgICAgICAgIAoJICAgICAgICAgICAgICAgIGFkalt1XS5wdXNoX2JhY2sodik7CgkgICAgICAgICAgICAgICAgYWRqW3ZdLnB1c2hfYmFjayh1KTsKCSAgICAgICAgICAgIH0KCSAgICAgICAgfQoJICAgIH0KCX0KCWludCBtYWluKCkgewoJICAgIGludCBuLCBtOwoJICAgIGNpbiA+PiBuID4+IG07CgkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCSAgICAgICAgaW50IHUsIHY7CgkgICAgICAgIGNpbiA+PiB1ID4+IHY7CgkgICAgICAgIGFkalt1XS5wdXNoX2JhY2sodik7CgkgICAgICAgIGFkalt2XS5wdXNoX2JhY2sodSk7CgkJfQoJCXRpbV9jYW5oX2NhdShuKTsKCX0KCQk=