#include #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; template bool chkmax(T &x,T y){return x bool chkmin(T &x,T y){return x>y?x=y,true:false;} int readint(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } const int cys=998244353; int n,m,k; int a[100005],ans[100005]; int main(){ int T=readint(); while(T--){ n=readint(); m=readint(); k=readint(); for(int i=1;i<=n;i++) ans[i]=1<<30; ans[k]=0; int x,y; for(int i=1;i<=m;i++){ x=readint(); y=readint(); int tx=ans[x],ty=ans[y]; ans[x]=min(ty,tx+1); ans[y]=min(tx,ty+1); } for(int i=1;i<=n;i++){ printf("%d",ans[i]>m+114514?-1:ans[i]); if(i