#include #define fr(i,a,b) for(int i=(a),end_##i=(b);i<=end_##i;i++) #define fd(i,a,b) for(int i=(a),end_##i=(b);i>=end_##i;i--) #define i64 long long int read() { int r=0,t=1,c=getchar(); while(c<'0'||c>'9'){ t=c=='-'?-1:1; c=getchar(); } while(c>='0'&&c<='9'){ r=(r<<3)+(r<<1)+(c^48); c=getchar(); } return r*t; } const int N=100010; int n,m,k,ans[N]; int main() { fr(T,1,read()) { n=read(); m=read(); k=read(); fr(i,1,n) ans[i]=N; ans[k]=0; fr(i,1,m) { int x=read(),y=read(); int X=ans[x],Y=ans[y]; ans[x]=std::min(Y,X+1); ans[y]=std::min(X,Y+1); } fr(i,1,n) printf("%d%c",ans[i]==N?-1:ans[i],i==n?'\n':' '); } return 0; }