#include using namespace std; typedef long long ll; typedef pair PII; const int maxn=111111,mod=998244353; #define fi first #define se second #define MP make_pair #define PB push_back #define lson o<<1,l,mid #define rson o<<1|1,mid+1,r #define FOR(i,a,b) for(int i=(a);i<=(b);i++) #define ROF(i,a,b) for(int i=(a);i>=(b);i--) #define MEM(x,v) memset(x,v,sizeof(x)) inline ll read(){ char ch=getchar();ll x=0,f=0; while(ch<'0' || ch>'9') f|=ch=='-',ch=getchar(); while(ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar(); return f?-x:x; } inline int qpow(int a,int b){ int ans=1; for(;b;b>>=1,a=1ll*a*a%mod) if(b&1) ans=1ll*ans*a%mod; return ans; } int n,m,k,f[maxn]; void solve(){ n=read();m=read();k=read(); FOR(i,1,n) f[i]=1e9; f[k]=0; while(m--){ int u=read(),v=read(); int x=min(f[v],f[u]+1),y=min(f[u],f[v]+1); f[u]=x;f[v]=y; } FOR(i,1,n) printf("%d%c",f[i]>=1e9?-1:f[i]," \n"[i==n]); } int main(){ int T=read(); while(T--) solve(); }