#include #include using namespace std; #define rep(i,n) for(int i = 0; i < (int)(n); i++) using mint = atcoder::modint; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; long long m; int p; cin >> n >> m >> p; mint::set_mod(p); vector am(n), a(n); rep(i, n) { long long x; cin >> x; a[i] = x; } auto mul = [n](const vector& a, const vector& b) { vector c(n), ab(n); rep(i, n) c[i] = a[i] + b[i]; rep(i, n) rep(j, n - i) ab[i+j] += a[i] * b[j]; rep(i, n) rep(j, n - i - 2) c[i+j+2] += c[i] * ab[j]; return c; }; m %= p; while (m) { if (m & 1) am = mul(am, a); a = mul(a, a); m >>= 1; } rep(i, n) cout << am[i].val() << " \n"[i + 1 == n]; }