int main(){ int n,m;while(cin>>n>>m){ if(n==0 && m==0)break; G.clear(), G.resize(n); ans.clear(), ans.resize(n); low.clear(), low.resize(n); num.clear(), num.resize(n); timer=0; while(1){ int u,v;cin>>u>>v; if(u==-1 && v==-1)break; // if(!~u&&!~v)break; G[u].pb(v), G[v].pb(u); } dfs(0,0); sort(ans.begin(),ans.end(),[](const pii &a,const pii &b)->bool{ return a.X==b.X?a.Y<b.Y:a.X>b.X; }); for(int i=0;i<m;++i){ printf("%d %d\n",ans[i].Y,ans[i].X); } el; } }