#include<bits/stdc++.h>
using namespace std;
#define lli long long int
#define inf 1000000000
#define pb push_back
#define mp make_pair
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define endl "\n"
#define yoi cout<<"yo"<<endl;
#define debug(x) cerr << #x << " is " << x << endl;
#define all(x) x.begin(),x.end()
const int mod=1e9+7;
lli dp[100001][2];
int indegree[100001];
void dfs(vector<vector<int> >&v,int i){
int j;
for(j=0;j<v[i].size();j++){
dp[v[i][j]][0]=(dp[v[i][j]][0]+dp[i][1])%mod;
dp[v[i][j]][1]=(dp[v[i][j]][1]+dp[i][0])%mod;
indegree[v[i][j]]--;
if(!indegree[v[i][j]])
dfs(v,v[i][j]);
}
}
int main(){
IOS;
int t;
cin>>t;
while(t--){
lli n,m,u,x,y,i;
cin>>n>>m>>x;
memset(dp,0,sizeof(dp));
memset(indegree,0,sizeof(indegree));
vector<vector<int> > v(n+1);
for(i=0;i<m;i++){
cin>>u>>y;
v[u].pb(y);
indegree[y]++;
}
dp[x][0]=0;
dp[x][1]=1;
dfs(v,x);
for(i=1;i<=n;i++){
cout<<dp[i][0]<<" ";
}
cout<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbGkgbG9uZyBsb25nIGludAojZGVmaW5lIGluZiAxMDAwMDAwMDAwCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgSU9TIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSB5b2kgY291dDw8InlvIjw8ZW5kbDsKI2RlZmluZSBkZWJ1Zyh4KSBjZXJyIDw8ICN4IDw8ICIgaXMgIiA8PCB4IDw8IGVuZGw7CiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSx4LmVuZCgpCmNvbnN0IGludCBtb2Q9MWU5Kzc7CmxsaSBkcFsxMDAwMDFdWzJdOwppbnQgaW5kZWdyZWVbMTAwMDAxXTsKdm9pZCBkZnModmVjdG9yPHZlY3RvcjxpbnQ+ID4mdixpbnQgaSl7CiAgICBpbnQgajsKICAgIGZvcihqPTA7ajx2W2ldLnNpemUoKTtqKyspewogICAgICAgIGRwW3ZbaV1bal1dWzBdPShkcFt2W2ldW2pdXVswXStkcFtpXVsxXSklbW9kOwogICAgICAgIGRwW3ZbaV1bal1dWzFdPShkcFt2W2ldW2pdXVsxXStkcFtpXVswXSklbW9kOwogICAgICAgIGluZGVncmVlW3ZbaV1bal1dLS07CiAgICAgICAgaWYoIWluZGVncmVlW3ZbaV1bal1dKQogICAgICAgIGRmcyh2LHZbaV1bal0pOwogICAgfQp9CmludCBtYWluKCl7CklPUzsKaW50IHQ7CmNpbj4+dDsKd2hpbGUodC0tKXsKICAgIGxsaSBuLG0sdSx4LHksaTsKICAgIGNpbj4+bj4+bT4+eDsKICAgIG1lbXNldChkcCwwLHNpemVvZihkcCkpOwogICAgbWVtc2V0KGluZGVncmVlLDAsc2l6ZW9mKGluZGVncmVlKSk7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4gPiB2KG4rMSk7CiAgICBmb3IoaT0wO2k8bTtpKyspewogICAgICAgIGNpbj4+dT4+eTsKICAgICAgICB2W3VdLnBiKHkpOwogICAgICAgIGluZGVncmVlW3ldKys7CiAgICB9CiAgICBkcFt4XVswXT0wOwogICAgZHBbeF1bMV09MTsKICAgIGRmcyh2LHgpOwogICAgZm9yKGk9MTtpPD1uO2krKyl7CiAgICAgICAgY291dDw8ZHBbaV1bMF08PCIgIjsKICAgIH0KICAgIGNvdXQ8PGVuZGw7Cn0KfQo=