#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(),x.end()
#define db(...) " [" << #__VA_ARGS__ << ": " << __VA_ARGS__ << "] "
using ii=long long;
const int N = 1 << 17;
vector<int> v[N];
ii dp[N][3]; // musta, valkoinen (musta ohi), valkoinen (musta alkamatta)
ii mod;
ii res[N];
void h(int s, int e)
{
    dp[s][0] = 1;
    dp[s][1] = 1;
    dp[s][2] = 1;
    for (int u : v[s]) {
        if (u == e) continue;
        h(u, s);
        (dp[s][0] *= (dp[u][0] + dp[u][2] % mod)) %= mod;
        (dp[s][1] *= (dp[u][0] + dp[u][1] % mod)) %= mod;
    }
}
void p(int s, int e, ii x)
{
    res[s] = x * dp[s][0] % mod;
    vector<ii> prodp;
    prodp.push_back(1);
    ii y = 1;
    for (int i = v[s].size() - 1; i >= 0; --i) {
        if (v[s][i] == e) continue;
        (y *= (dp[v[s][i]][0] + 1)) %= mod;
        prodp.push_back(y);
    }
    prodp.pop_back();
    ii z = 1;
    for (int u : v[s]) {
        if (u == e) continue;
        p(u, s, 1 + x * z % mod * prodp.back() % mod);
        prodp.pop_back();
        (z *= (dp[u][0] + 1)) %= mod;
    }
}
int main()
{
    int n;
    cin >> n;
    cin >> mod;
    for (int i = 2; i <= n; ++i) {
        int a, b;
        cin >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    h(1, 1);
    p(1, 1, 1);
    for (int i = 1; i <= n; ++i) {
        cout << res[i] << "\n";
    }
}
