#include //#include #include #include #include #include #include #include #include #include #include #include #define MAX(x,y) (((x)>(y)) ? (x) : (y)) #define MIN(x,y) (((x)<(y)) ? (x) : (y)) #define sq(x) (x)*(x) #define cei(a,b) (long long)(((a)+(b)-1)/(b)) #define mst(a,b) memset((a),b,sizeof((a))) #define fi first #define se second #define pb push_back using namespace std; const int MAXN = 1e6+5; const int N=1e5+5; const int E4=1e4; const long long mod = 1e9+7 ; //const long long mod = 998244353 ; const int inf = 0x3f3f3f3f; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; int dx[4]= {1,0,0,-1}; int dy[4]= {0,-1,1,0}; int dp[N],vis[N]; void solve() { int n,m,k,u,v; scanf("%d%d%d",&n,&m,&k); for(int i=1; i<=n; i++) dp[i]=n+1; for(int i=1; i<=n; i++) vis[i]=0; vis[k]=1; dp[k]=n; for(int j=1; j<=m; j++) { scanf("%d%d",&u,&v); if(vis[u]&&vis[v]) { int cu=dp[u]; dp[u]=max(dp[u]-1,dp[v]); dp[v]=max(dp[v]-1,cu); } else if(vis[u]) { dp[v]=dp[u]--; vis[v]=1; } else if(vis[v]) { dp[u]=dp[v]--; vis[u]=1; } } for(int i=1; i<=n; i++) printf(i