#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define int long long
using namespace std;
using namespace __gnu_pbds;
int fa[2005];
int n,m;
struct node
{
int x,y;
}a[5005];
inline bool cmp(node a,node b)
{
return (a.x==b.x)?(a.y<b.y):(a.x<b.x);
}
inline void init(int n)
{
for(register int i=1;i<=n;i++)fa[i]=i;
}
inline int find(int i)
{
if(fa[i]==i)return i;
else
{
fa[i]=find(fa[i]);
return fa[i];
}
}
inline void unionn(int x,int y)
{
int fx=find(x);
int fy=find(y);
fa[fx]=fy;
}
signed main()
{
cin>>n>>m;
for(register int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
a[i].x=min(x,y);
a[i].y=max(x,y);
}
sort(a+1,a+1+m,cmp);
for(register int i=1;i<=m;i++)
{
bool flag=false;
init(n);
for(register int j=1;i<=m;j++)
{
if(j!=i)unionn(a[j].x,a[j].y);
}
for(register int j=1;j<n;j++)
{
if(find(j)!=find(j+1))
{
flag=true;
break;
}
}
if(flag) cout<<a[i].x<<" "<<a[i].y<<endl;
}
return 0;
}