#include #define debug(x) cerr<<#x<<" = "<=mod)?(x+y-mod):(x+y);} inline int mns(int x,int y){return (x-y<0)?(x-y+mod):(x-y);} inline int mul(LL x,LL y){return x*y%mod;} inline void upd(int &x,int y){x=(x+y>=mod)?(x+y-mod):(x+y);} inline void dec(int &x,int y){x=(x-y<0)?(x-y+mod):(x-y);} inline int qpow(int x,int sq){LL res=1;for(;sq;sq>>=1,x=mul(x,x))if(sq&1)res=mul(res,x);return res;} }using namespace CALC; #define M 100020 int n,m,K; int F[M]; inline void solve(){ n=read(),m=read(),K=read(); for(int i=1;i<=n;i++) F[i]=m+2; F[K]=0; for(int i=1;i<=m;i++){ int a=read(),b=read(),fa=F[a],fb=F[b]; F[a]=min(fa+1,fb); F[b]=min(fb+1,fa); } for(int i=1;i<=n;i++) if(F[i]>m) F[i]=-1; for(int i=1;i<=n;i++) printf("%d%c",F[i],i