一片红。。。。
#include<cstdio>
#include<vector>
#include<cstring>
#include<queue>
using namespace std;
const int MAXN=100010;
int n,m;
bool vis[MAXN];
vector<int>G[MAXN];
void dfs(int u)
{
printf("%d ",u);
vis[u]=1;
for(register int i=0;i<G[u].size();i++)
{
int v=G[u][i];
if(!vis[v]) dfs(v);
}
}
void bfs()
{
queue<int>q;
memset(vis,0,sizeof(vis));
vis[1]=1;
q.push(1);
printf("1 ");
while(!q.empty())
{
int u=q.front();
q.pop();
for(register int i=0;i<G[u].size();i++)
{
int v=G[u][i];
if(!vis[v])
{
vis[v]=1;
q.push(v);
printf("%d ",v);
}
}
}
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int u,v;
scanf("%d%d",&u,&v);
G[u].push_back(v);
}
dfs(1);
printf("\n");
bfs();
}