Пример #1
0
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;
    }
}