4个RE
/*
1 2
1 3
1 4
2 5
2 6
3 7
4 7
4 8
7 8
1 234
2 56
3 7
4 78
5
6
7 8
8
*/
#include<bits/stdc++.h>
#define ll long long
#define MAX 0x3f3f3f3f
#define MIN -0x3f3f3f3f
using namespace std;
ll in();
int n,T;
vector<int> ve[100010];
bool dx[100010];
queue<int> q;
struct a1{
int a,b;
void a2(){
a=in();
b=in();
}
}s[100010];
ll in(){
ll x=1,dx=0;
char xx=getchar();
for(;xx<'0'||xx>'9';xx=getchar())
if(xx=='-')
x=-1;
for(;xx>='0'&&xx<='9';dx=dx*10+xx-'0',xx=getchar());
return x*dx;
}
bool a3(a1 x,a1 y){
return x.b<y.b||(x.b==y.b&&x.a<y.a);
}
void dfs(int x){
if(dx[x])
return;
cout<<x<<" ";
dx[x]=1;
for(int i=0;i<ve[x].size();dfs(ve[x][i]),i++);
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
n=in();
T=in();
for(int i=1;i<=T;s[i].a2(),i++);
sort(s+1,s+T+1,a3);
for(int i=1,sx=1;i<=n;i++)
for(;s[sx].a==i;ve[i].push_back(s[sx].b),sx++);
dfs(s[1].a);
memset(dx,0,sizeof(dx));
cout<<"\n";
q.push(s[1].a);
for(;!q.empty();){
int xx=q.front();
q.pop();
if(dx[xx]==0)
cout<<xx<<" ";
dx[xx]=1;
for(int i=0;i<ve[xx].size();i++)
if(dx[ve[xx][i]]==0)
q.push(ve[xx][i]);
}
return 0;
}