#include<stdio.h>
int k1, k2, mean[155] = { 0 }, len[155] = { 0 },f=1;
struct ff
{
int b[155];
}a[155];
struct tt
{
int p;
int q;
}ans[5005];
void DFS(int x)
{
mean[x] = 1;
for (int i = 1; i <= len[x]; i++)
{
if (mean[a[x].b[i]] == 1)continue;
if (x == k1 && a[x].b[i] == k2)continue;
if (a[x].b[i] == k2)
{
mean[x] = 0;
f = 0;
return;
}
DFS(a[x].b[i]);
}
mean[x] = 0;
return;
}
int main()
{
int n, m, x, y, ind = 0,t,s[5005],sum=0;
scanf("%d%d", &n,&m);
while (m--)
{
scanf("%d%d", &x, &y);
if (x > y)
{
t = x;
x = y;
y = t;
}
a[x].b[++len[x]] = y;
a[y].b[++len[y]] = x;
ans[++ind].p = x;
ans[ind].q = y;
}
for (int i = 1; i <= ind; i++)
{
k1 = ans[i].p;
k2 = ans[i].q;
DFS(k1);
if (f)
{
s[++sum] = i;
}
else f = 1;
}
for (int i = 1; i < sum; i++)
{
int z = i;
for (int j = i + 1; j <= sum; j++)
{
if (ans[s[z]].p > ans[s[j]].p)z = j;
else if (ans[s[z]].p == ans[s[j]].p)
{
if (ans[s[z]].q > ans[s[j]].q)z = j;
}
}
t = s[z];
s[z] = s[i];
s[i] = t;
}
for (int i = 1; i <= sum; i++)
{
printf("%d %d\n", ans[s[i]].p, ans[s[i]].q);
}
return 0;
}