#include using namespace std; typedef long long ll; typedef pair pii; #define lson (root << 1) #define rson (root << 1 | 1) const int N = 1e5+10; const int INF = 1e9; int dp[N]; void solve() { int n, m, k; scanf("%d%d%d", &n, &m, &k); for (int i = 1; i <= n; i++) dp[i] = INF; dp[k] = 0; for (int i = 1; i <= m; i++) { int u, v; scanf("%d%d", &u, &v); if (u == v) continue; int tdpu = dp[u], tdpv = dp[v]; dp[u] = min({tdpu + 1, tdpv}); dp[v] = min({tdpv + 1, tdpu}); } for (int i = 1; i <= n; i++) { if (i > 1) printf(" "); printf("%d", (dp[i] >= INF) ? -1 : dp[i]); } printf("\n"); } int main() { int T = 1; scanf("%d", &T); while (T--) solve(); return 0; }